请求失败:不可接受的内容类型:application / osm3s + xml

时间:2015-01-25 21:28:13

标签: ios afnetworking openstreetmap

我试图向OpenStreetMap api发送请求,但我仍然没有这样做。请帮我解决错误。

我的方法:

NSString *url = @"http://api.openstreetmap.fr/xapi?node[name=London]";

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/osm3s+xml"];
[manager setResponseSerializer:[AFXMLParserResponseSerializer new]];

[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, NSData *responseObject) {
    NSLog(@"DATA: %@", responseObject);
    [self stopProgress];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
    self.textView.text = error.description;
    [self stopProgress];
}];

错误:

Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: application/osm3s+xml" UserInfo=0x1702e1e80 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x17403d080> { URL: http://api.openstreetmap.fr/xapi?node%5Bname=London%5D } { status code: 200, headers { 
Connection = "Keep-Alive"; 
"Content-Encoding" = gzip; 
"Content-Length" = 7166; 
"Content-Type" = "application/osm3s+xml"; 
Date = "Sun, 25 Jan 2015 21:18:54 GMT"; 
"Keep-Alive" = "timeout=5, max=100"; 
Server = "Apache/2.2.22 (Debian)"; 
Vary = "Accept-Encoding"; 
} }, NSErrorFailingURLKey=http://api.openstreetmap.fr/xapi?node%5Bname=London%5D, com.alamofire.serialization.response.error.data=<3c3f786d 6c207665 7273696f 6e3d2231 2e302220 656e636f 64696e67 (... a lot of numbers ... )>, NSLocalizedDescription=Request failed: unacceptable content-type: application/osm3s+xml} 

1 个答案:

答案 0 :(得分:1)

您的代码:

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/osm3s+xml"];

非常清楚地创建了OpenStreetMap拒绝的标头。不要设置标题:将其设置为value like text/xml,将其记录为正确的值。