[英]Unable to set content type in AFNetworking AFHTTPRequestOperationManager
I have a web-service which requires Content-Type = application/x-www-form-urlencoded. 我有一个Web服务,需要Content-Type = application / x-www-form-urlencoded。 I have set the headers but it does not changes as I can see in the request logs. 我已经设置了标题,但它没有像我在请求日志中看到的那样发生变化。 Below is the code and request log 下面是代码和请求日志
NSURL *baseURL = [NSURL URLWithString:@"http://example.net/api/"];
// Initialize Request Operation Manager
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];
// Configure Request Operation Manager
[manager setResponseSerializer:[AFJSONResponseSerializer serializer]];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"application/x-www-form-urlencoded"];
// Send Request
[manager GET:@"Account/Register" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
// Process Response Object
NSLog(@"Register Response: %@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Handle Error
NSLog(@"Register Response Error: %@",[error description]);
}];
But when I look into the request, Content-Type is not changed. 但是当我查看请求时,Content-Type不会更改。 Here is the request details 这是请求详细信息
ErrorDomain=AFNetworkingErrorDomainCode=-1011"Request failed: bad request (400)"UserInfo=0x109559a40{
AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x109709260>{
URL: http: //example.net/api/Account/Register
}{
statuscode: 400,
headers{
"Cache-Control"="no-cache";
"Content-Length"=142;
"Content-Type"="application/json; charset=utf-8";
Date="Mon, 10 Mar 2014 14:30:52 GMT";
Expires="-1";
Pragma="no-cache";Server="Microsoft-IIS/8.0";
"Set-Cookie"="xxxxx;Path=/;Domain=example.net, WAWebSiteSID=xxxxxxx; Path=/; HttpOnly";"X-AspNet-Version"="4.0.30319";"X-Powered-By"="ASP.NET";
}
},
NSLocalizedDescription=Requestfailed: badrequest(400),
NSErrorFailingURLKey=http: //example.net/api/Account/Register
}
How can I set Content-Type to application/x-www-form-urlencoded? 如何将Content-Type设置为application / x-www-form-urlencoded?
You don't need to set ResponseSerializer to manager. 您不需要将ResponseSerializer设置为manager。 Please user below code will work for you. 请用户在下面的代码将为您服务。
NSURL *baseURL = [NSURL URLWithString:@"http://example.net/api/"];
// Initialize Request Operation Manager
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];
// Configure Request Operation Manager
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"application/x-www-form-urlencoded"];
// Send Request
[manager GET:@"Account/Register" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
// Process Response Object
NSLog(@"Register Response: %@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Handle Error
NSLog(@"Register Response Error: %@",[error description]);
}];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.