LoginSignup
24
25

More than 5 years have passed since last update.

AFNetworking2.xを利用して、HTMLやテキストを取得する

Posted at

AFNetworkingを利用して、GETでプレーンテキストを取得しようとしたらエラーがでてハマったので、対応方法をメモに残します。

結論から述べると、AFHTTPSessionManagerのresponseSerializerにAFHTTPResponseSerializerを指定します。reponseSerializerは、デフォルトでJSON用になっており、JSON以外の文字列を取得すると次のようなエラーが発生するようです。

Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html"

以下のようにする事で、プレーンテキストを読み込めるようになります。


AFHTTPSessionManager* manager = [AFHTTPSessionManager manager];

// ここでserializerをデフォルトから変更している。
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:@"http://192.168.169.170/get_data" parameters:nil success:^(NSURLSessionDataTask* task, id responseObject) {
    // responseをUTF-8に変換
    NSString* str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    NSLog(@"task=%@, response = %@ %@", task, [responseObject class], str);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    NSLog(@"Login error: %@", error);
}];

AFNetworkingが予めJSON用のSerializerを用意しているのだから、レスポンスをプレーンテキストからJSONに変えた方が良いのかもしれません。。。

参考

24
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
25