带有text / plain响应的API因“不可接受的内容类型”而失败

时间:2016-08-31 11:35:58

标签: ios objective-c afnetworking-3

我正在尝试执行GET请求回复“text/plain

请求失败,错误为“不可接受的内容类型:text / plain”。

所以我将AcceptableContentType设置为"text/plain"并创建了responseSerializer with NSJSONReadingAllowFragments`。

但请求也因错误而失败。

  

NSCocoaErrorDomain“ - code:3840”:“字符0周围的值无效。”

      NSString *requestUrl = [NSString
                          stringWithFormat:@"%@%@",kServerURL,myURL];

  AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

  manager.requestSerializer = [AFJSONRequestSerializer serializer];
  manager.responseSerializer = [AFJSONResponseSerializer
      serializerWithReadingOptions:NSJSONReadingAllowFragments];

  [manager.responseSerializer
      setAcceptableContentTypes:[NSSet setWithObject:@"text/plain"]];
  [manager GET:requestUrl
      parameters:nil
      progress:nil
      success:^(NSURLSessionTask *task, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
      }
      failure:^(NSURLSessionTask *operation, NSError *error) {
        NSLog(@"Error: %@", error);
      }];

1 个答案:

答案 0 :(得分:2)

在这个地方

manager.requestSerializer = [AFJSONRequestSerializer serializer];
 manager.responseSerializer = [AFJSONResponseSerializer
  serializerWithReadingOptions:NSJSONReadingAllowFragments];
[manager.responseSerializer
  setAcceptableContentTypes:[NSSet setWithObject:@"text/plain"]];

使用

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];