Перевести команду curl в NSMutableUrlRequest

Я пытаюсь портировать запрос curl:

curl -X POST -H [header stuff]  -d '{"key":"value"}' [host] 

в NSMutableUrlRequest. До сих пор я исключил, что работает нормально, и сохранил только то, что вызывает у меня проблемы, а именно -d '{"key":"value"}'. Другая часть заголовка в порядке.

Согласно curl manual -d означает, что полезная нагрузка отправляется в формате application/x-www-form-urlencoded, поэтому я сделал следующее:

    NSString* post =   @"{\"key\":\"value\"}";
    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    [_request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [_request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [_request setHTTPMethod:@"POST"];
    [_request setHTTPBody:postData];

Это возвращает следующую ошибку

Ошибка: ошибка Domain=AFNetworkingErrorDomain Code=-1011 "Ожидаемый код состояния в (200-299), получено 400" UserInfo=0xa363550 {NSLocalizedRecoverySuggestion={"code":107,"error":"bad www-form-urlencoded data"}

Может ли кто-нибудь указать мне правильное направление для отладки этого материала? -А

1 ответ

Решение

Content-Type должно быть application/json или, может быть text/plain вместо. Если ничего не помогает, попробуйте application/octet-stream (необработанные двоичные данные).

Другие вопросы по тегам