NSURLRequest setHTTPBody попал в параметры сервера - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь отправить запрос POST на мой сервер, кажется, что все работает нормально, однако вся HTTPBody заканчивается параметрами запроса на стороне сервера.

Самоподписанный сертификат на сервере, который генерирует AuthenticationChallenge, который я в настоящее время игнорирую, также работает нормально.

Однако, как я уже говорил выше, postBodyData оказывается в неправильном месте на сервере.Код, который я использую, показан ниже и задокументирован в библиотеке документации Apples ios под NSURLRequest.

[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody:postBodyData];

любая помощь, предложения или примеры будут оценены.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Ладно, разобрались с вопросом.Поскольку я отправлял двоичные данные, тип содержимого был неправильным, как только я передал пустую строку, это сработало.

Однако я не хотел, чтобы тип содержимого был установлен, поэтому я нашел тип MIME, который подходит для этогоправильно, как показано ниже.

[request setValue:@"application/octet-stream" forHTTPHeaderField:@"content-type"];
0 голосов
/ 27 февраля 2012

Вам необходимо также указать Content-Length ваших опубликованных данных в заголовке запроса.Вы должны добавить:

NSString *postLength = [NSString stringWithFormat:@"%d", [postBodyData length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
...