AFNetworking の新しいバージョン 2.0 を試しているのですが、上記のエラーが発生します。なぜこのようなことが起こるのか、ご存知ですか? これが私のコードです:
NSURL *URL = [NSURL URLWithString:kJSONlink];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
op.responseSerializer = [AFJSONResponseSerializer serializer];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
[[NSOperationQueue mainQueue] addOperation:op];
Xcode 5.0 を使用しています。
また、エラーメッセージは次のとおりです。
Error: Error Domain=AFNetworkingErrorDomain Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo=0xda2e670 {NSErrorFailingURLKey=kJSONlink, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xda35180> { URL: kJSONlink } { status code: 200, headers {
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 2898;
"Content-Type" = "text/html";
Date = "Tue, 01 Oct 2013 10:59:45 GMT";
"Keep-Alive" = "timeout=5, max=100";
Server = Apache;
Vary = "Accept-Encoding";
} }, NSLocalizedDescription=Request failed: unacceptable content-type: text/html}
kJSONlink を使用して JSON を非表示にしました。これにより JSON が返されるはずです。
ベストアンサー1
これは、サーバーが"text/html"
既にサポートされているタイプではなく送信していることを意味します。私の解決策は、クラスにセット"text/html"
を追加することでした。「acceptableContentTypes」を検索し、手動でセットに追加するだけです。acceptableContentTypes
AFURLResponseSerialization
@"text/html"
もちろん、理想的な解決策はサーバーから送信されるタイプを変更することですが、そのためにはサーバー チームと話し合う必要があります。