我一直试图使用AFNetworking 2.0通过HTTP与JSON API对话。我发现的示例建议使用AFHTTPRequestOperationManager
,因此我实现了以下伪代码:
manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://test-api.localdev/"]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
params = @{
@"username": @"Drarok",
@"token": @"1234-abcd"
};
[manager GET:@"transactions" parameters:params success:[…] failure:[…]];
不幸的是,似乎AFJSONRequestSerializer
没有(或者可以没有)设置Content-Type,我无法找到手动执行此操作的方法。
因此,API拒绝我的请求时出现“HTTP 415不支持的媒体类型”错误。
其他类似问题是由服务器响应不是application / json引起的,但这个问题与请求标题有关。
答案 0 :(得分:0)
这是由错误的API服务器断言所有请求都有Content-Type: application/json
标头引起的。 AFNetworking将正确避免为HEAD
,GET
或DELETE
请求设置该标头。