带有文本/纯文本响应的 API 因“不可接受的内容类型”而失败
Posted
技术标签:
【中文标题】带有文本/纯文本响应的 API 因“不可接受的内容类型”而失败【英文标题】:API with text/plain response failed with 'unacceptable content-type' 【发布时间】:2016-08-31 11:35:57 【问题描述】:我正在尝试执行GET
请求,该请求以“text/plain
”响应
请求失败,出现错误“不可接受的内容类型:文本/纯文本”。
所以我将AcceptableContentType
设置为"text/plain"
并创建了一个 responseSerializerwith
NSJSONReadingAllowFragments`。
但请求也失败并出现错误。
NSCocoaErrorDomain" - 代码: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);
];
【问题讨论】:
隐藏 manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; [manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObject:@"text/plain"]];并添加 manager.requestSerializer = [AFHTTPRequestSerializer 序列化器]; 没有它们,它失败了'JSON文本没有以数组或对象和允许未设置片段的选项开始'所以我添加了它们。 并且没有 [manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObject:@"text/plain"] 失败并显示“请求失败:不可接受的内容类型:文本/纯文本” 你能更新一次问题吗 (Cocoa error 3840.)" (Invalid value around character 0.) AFNetworking的可能重复 【参考方案1】:在这个地方
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializerWithReadingOptions:NSJSONReadingAllowFragments];
[manager.responseSerializer
setAcceptableContentTypes:[NSSet setWithObject:@"text/plain"]];
使用
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
【讨论】:
以上是关于带有文本/纯文本响应的 API 因“不可接受的内容类型”而失败的主要内容,如果未能解决你的问题,请参考以下文章
代码=-1016“请求失败:不可接受的内容类型:文本/纯文本”用户信息=0x7a2da380
通过 Gmail API 发送带有纯文本回退的 HTML 电子邮件
AFNetworking 2.0:NSLocalizedDescription=请求失败:不可接受的内容类型:文本/html
“请求失败:不可接受的内容类型:文本/html”使用 AFNetworking 2.0