AFNetworking 2.0 и заголовок запроса
Я использую AFNetworking 2.0. Я реализовал свой одноэлементный класс как подкласс: AFHTTPSessionManager
+ (RESTClientManager *)sharedManager
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedInstance = [[self alloc] initWithBaseURL:[NSURL URLWithString:@"http://myurl.com:8080"]];
});
return _sharedInstance;
}
- (instancetype)initWithBaseURL:(NSURL *)url
{
self = [super initWithBaseURL:url];
if (self) {
self.responseSerializer = [AFJSONResponseSerializer serializer];
self.requestSerializer = [AFJSONRequestSerializer serializer];
}
return self;
}
Когда мне нужно сделать POST, я использую этот код:
[self POST:@"/users" parameters:requestParameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Ok");
}
failure:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Failed");
}];
Но я получаю ошибку:
{ status code: 406, headers {
Connection = "keep-alive";
"Content-Length" = 0;
"Content-Type" = "application/json";
Date = "Sat, 30 Aug 2014 09:29:15 GMT";
Server = "8";
"X-Powered-By" = "Undertow 1";
} }, NSLocalizedDescription=Request failed: unacceptable (406)}
Используя клиент RESTful, я попытался сделать тот же запрос: Это хорошо работает, когда я добавляю следующие поля заголовка:
- Принять ": приложение / JSON
- Тип контента: приложение / JSON
Как я могу получить это с помощью AFNetworking 2.0?
РЕДАКТИРОВАТЬ
Печать словаря параметров
po requestParameters
{
city = "";
country = Italy;
deviceToken = "";
email = "email@sdsd.it";
mobileNumber = "";
name = "Test_iOS";
phoneNumber = "";
postalCode = "";
street = "";
streetNumber = "";
surname = "";
userId = 00000001;
}
1 ответ
Если вы добавили правильное Content-Type
в заголовок вашего запроса, то ваши параметры, вероятно, являются источником ошибки. Если вы можете связаться с кем-либо, кто отвечает за внутренний сервер, вы можете получить точный отчет об ошибке от них. Если нет, убедитесь, что параметры не равны нулю, и то, что вы передаете, соответствует всем стандартам, которые использует сервер.
Мы могли бы помочь вам лучше, если бы мы могли видеть переданные параметры.