NSMutableUrlRequest ест плюсики - PullRequest
       18

NSMutableUrlRequest ест плюсики

4 голосов
/ 22 марта 2010

Я создаю NSMutableUrlRequest для отправки данных на сервер, добавляю в него все необходимые поля и затем добавляю строку для отправки следующим образом:

[theRequest setHTTPBody:[postString dataUsingEncoding: NSUTF8StringEncoding]];

postString - это обычная строка NSString.

Проблема в том, что когда я получаю этот запрос на сервере, все знаки плюс (+) исчезают из тела http. Так что, если у меня было «abcde + fghj» на iPhone, я получаю «abcde fghj» на сервере ».

Может ли это быть проблемой кодирования при использовании dataUsingEncoding: NSUTF8StringEncoding? Или какая-то функция зачистки NSMutableUrlRequest? Что я могу сделать, чтобы он прекратил снимать знаки плюс? Мне нужно получить строки UTF8 на стороне сервера.

Ответы [ 2 ]

4 голосов
/ 22 марта 2010

Знак плюс (+) - это стандартный ярлык для пробела в части строки запроса URL. Если вам нужен литерал +, закодируйте его как% 2b.

0 голосов
/ 22 марта 2010

Может быть сервер не знает, какая кодировка тела POST. Вы пытались добавить кодировку = UTF-8 в заголовок вашего запроса так:

[theRequest setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
...