请求失败:不可接受的内容类型:使用AFNetworking 2.0的text / html

请求失败:不可接受的内容类型:使用AFNetworking 2.0的text / html

我正在尝试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。


MYYA
浏览 704回答 3
3回答

陪伴而非守候

这意味着您的服务器正在发送"text/html"而不是已经支持的类型。我的解决办法是添加"text/html"到acceptableContentTypes在设置AFURLResponseSerialization类。只需搜索“acceptableContentTypes”并@"text/html"手动添加到集合中。当然,理想的解决方案是更改从服务器发送的类型,但为此您将不得不与服务器团队交谈。

慕村9548890

我将@jaytrixz的答案/评论更进一步,并将“text / html”添加到现有的类型集中。这样当他们将它在服务器端修复为“application / json”或“text / json”时,我声称它将无缝地工作。&nbsp;&nbsp;manager.responseSerializer.acceptableContentTypes&nbsp;=&nbsp;[manager.responseSerializer.acceptableContentTypes&nbsp;setByAddingObject:@"text/html"];
打开App,查看更多内容
随时随地看视频慕课网APP