我正在创建iOS应用程序并尝试通过afnetworking代码从服务器获取数据
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:@"http://XXXXXX/DisplayDetail.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"%@ %@", response, responseObject);
}
}];
[dataTask resume];
但我收到了以下错误
Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo=0x7f9f3943aee0 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7f9f3954e0b0> { URL: http://run2tour.com/bud_api/DisplayDetail.php } { status code: 200, headers {
Connection = "Keep-Alive";
"Content-Type" = "text/html";
Date = "Thu, 29 Jan 2015 07:30:36 GMT";
"Keep-Alive" = "timeout=5";
Server = "Apache/2.4.10 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4 mod_fcgid/2.3.10-dev";
"Transfer-Encoding" = Identity;
"X-Powered-By" = "PHP/5.4.34";}
},
NSErrorFailingURLKey=http://run2tour.com/bud_api/DisplayDetail.php, com.alamofire.serialization.response.error.data=<5b7b2275 7365725f 6964223a 22313039 222c2275 7365725f 656d6169 6c223a22 616e7572 61674067
............
所以请帮我解决一下。
答案 0 :(得分:0)
快速修复 - AFJSONResponseSerializer
AFNetworking
acceptableContentTypes
类字段已定义。您必须在那里添加text/html
类型。
它是一个JSON响应,因此它应该是text / json。
答案 1 :(得分:0)
从错误消息中,服务器返回的内容类型不正确。服务器确实返回JSON,但标题表示其HTML。
真的应该修复服务器标题。
一个糟糕的解决方案是教AFN在响应序列化类中将HTML MIME类型响应视为JSON。
答案 2 :(得分:0)
正如@Wain所说,最好的方法是改变后端的标题
例如你http://XXXXXX/DisplayDetail.php&#34;文件你应该添加
header('Content-type: application/json');
PHP参考 http://www.w3schools.com/php/func_http_header.asp http://php.net/manual/en/function.header.php