我正在使用 AFNetworking
pod 'AFNetworking', '~> 2.2'
我需要发送带有 json header 的 POST,但它的输出为
"内容类型"= "文本/html";
为什么??,请在我的代码中看到我正在设置这个?
- (void)postRequestWithParams:(NSDictionary*)paramasDicto andURL:(NSString*)url
success:(void (^)(id responseObject))success
failure:(void (^)(NSError *error))failure
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[manager
POST:url
parameters:paramasDicto
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
success(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
DLog(@"error : %@", error);
}];
}
请注意,如果我这样做:po manager.requestSerializer.HTTPRequestHeaders
我明白了
{
"Accept-Language" = "en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5";
"Content-Type" = "application/json";
"User-Agent" = "OrderingShopPhone/1.0 (iPhone Simulator; iOS 7.1; Scale/2.00)";
}
最佳答案
the relevant AFNetworking code 中没有任何内容|可以设置 text/html
。
可能的解释:
- 在它发布之前,您正在代码中的其他地方更改它
- 您有一个中间服务器在请求离开您的应用程序后更改请求(例如,您的负载均衡器可能会覆盖它)。
旁注:自 2.2 版以来,修复了许多重要的错误;你应该更新到 2.3.1,虽然我不认为它会解决这个问题。
关于iOS AFNetworking AFHTTPRequestOperationManager 没有设置 json header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25353429/