App 使用很久了,昨天出现一个bug,网络请求总失败。调试打印,发现是这样的错误:
AFHTTPRequestOperation *operation = [manager POST:URLString parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (successBlock) {
successBlock(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failureBlock) {
failureBlock(error);
}
NSLog(@"%@", error);
}];
Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set., NSUnderlyingError=0x15eb52e0 {Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad gateway (502)" UserInfo={com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x15d4c7d0> { URL: http://xxx.com } { status code: 502, headers { Connection = "keep-alive"; "Content-Length" = 173; "Content-Type" = "text/html"; Date = "Mon, 01 Feb 2016 03:35:51 GMT"; Server = "nginx/1.5.12"; } }, NSErrorFailingURLKey=http://xxx.com, NSLocalizedDescription=Request failed: bad gateway (502)
有大神遇到过吗?App 使用很久了,头一次出现这样的 bug, 因此可以排除 manager 的配置问题。
服务器返回数据不是json格式的,让后端调一下就成,这是最常见的错误了。
出现这种情况,最常见的是接口添加了打印信息,或者接口抱错,导致请求所返回来的数据不是合法的JSON而报错
一楼正解,这个问题以前老是遇到过,就是接口返回的数据非标准json格式,有可能是换行符或者其他符号导致的。
@Aster0id , @标哥 , @那爱离殇 ,确实是服务器的原因。谢了。