Сетевое приложение AF/json

Используя iOS, я пытаюсь связаться с веб-сервисом, который запрашивает 3 заголовка, за которыми следуют данные JSON POST.

Я рассмотрел следующий фрагмент кода AFNetworking, который преобразует словарь в файл JSON. В этом случае я пытаюсь отправить как заголовки, так и файл JSON. Дайте мне знать, если у вас есть какие-либо предложения:

NSURL *url = [NSURL URLWithString:WalletKit_URL];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
httpClient.parameterEncoding = AFJSONParameterEncoding;
NSDictionary *params = @{@"brand-id" : Brand_Id, @"api-key" : API_Key, @"Content-Type" : @"application/json"};
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"" parameters:params];
AFHTTPRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSURLResponse *response, id JSON) {
    NSLog(@"success");
} failure:^(NSURLRequest *request, NSURLResponse *response, NSError *error, id JSON) {
    NSLog(@"error");
}];

person Jack120    schedule 05.02.2013    source источник
comment
Вы получаете сообщение об ошибке?   -  person Miguel-F    schedule 05.02.2013


Ответы (1)


Вы должны добавить поля заголовка HTTP в файл NSMutableURLRequest.

[request addValue:@"foobar" forHTTPHeaderField:@"X-Foo-Bar"];
person tom    schedule 05.02.2013
comment
Спасибо! Если моими единственными данными за пределами заголовка является файл JSON, какую структуру команды я использую, чтобы добавить ее в запрос. Я предполагаю, что это вместо существующих NSDictionary * params? - person Jack120; 06.02.2013
comment
Да, пропустите параметры. Если файл JSON — это единственное, что вы публикуете, вам не следует использовать параметры, поскольку это даст вам закодированное в форме тело POST (которое выглядит как строка запроса, за исключением того, что оно находится в теле запроса). Используйте setHTTPBody:(NSData), чтобы добавить файл JSON. - person tom; 06.02.2013
comment
Это то, о чем вы думали. Я бы преобразовал словарь JSON в файл NSData: - person Jack120; 06.02.2013
comment
Точно. Сначала преобразуйте в NSString, а затем используйте [NSString dataUsingEncoding: NSUTF8StringEncoding] для преобразования в NSData. - person tom; 06.02.2013
comment
Спасибо. Было бы проще преобразовать словарь JSON в данные, используя NSJSONSerialization dataWithJSONObject:options:error? - person Jack120; 06.02.2013