【发布时间】:2014-09-11 09:36:58
【问题描述】:
我在使用 AFNetworking 时遇到问题。我无法将content-type 设置为application/json。我能怎么做?我尝试了很多解决方案,但没有人奏效。这是我的代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
if (self.enableBasicAuth){
[manager setRequestSerializer:[AFHTTPRequestSerializer serializer]];
[manager.requestSerializer setAuthorizationHeaderFieldWithUsername:[[SOWMerchant merchant] username] password:[[SOWMerchant merchant] password]];
}
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:[NSString stringWithFormat:@"%@", url] parameters:postData success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self onSuccessResponse:responseObject request:operation];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self onError:error request:operation];
}];
我收到此回复
{ URL: https://sbengtest.spotonway.com:9099/v1.0/merchant/check }, response: <NSHTTPURLResponse: 0x10aa20530> { URL: https://sbengtest.spotonway.com:9099/v1.0/merchant/check } { status code: 400, headers {
Connection = "keep-alive";
"Content-Length" = 192;
"Content-Type" = "text/html";
Date = "Sun, 20 Jul 2014 22:34:59 GMT";
Server = "nginx/1.2.1";
} }>
更新:
我试着添加这个
AFJSONRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer];
[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
operationManagerInstance.requestSerializer = requestSerializer;
我的应用程序崩溃
更新 2: 有用。我删除了这一行
[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
【问题讨论】:
-
您是否尝试使用
AFJSONRequestSerializer它应该自动设置正确的内容类型? -
请发布响应正文和您发送的所有请求标头。可能是接受标头而不是内容类型存在问题。
-
我怎样才能得到它?但是,如果我在没有 sepcify 内容类型的情况下向邮递员发出请求(默认为 text/html),我会得到状态代码 400 bad request 400 Bad Request
Bad Request
浏览器(或代理)发送了此服务器无法理解的请求。
-
如果我不能设置内容类型,你知道另一种方法来做http请求和处理状态码和错误吗??
-
我遇到了同样的问题,但无法解决。在 Postman 中,响应回来得很好。在应用程序中,应用程序/json 被解释为 text/plain 我花了几个小时试图弄清楚这一点并且不知道问题是什么。
标签: ios objective-c json afnetworking content-type