Отправка данных с помощью POST, проблема с кодировкой символов - PullRequest
1 голос
/ 26 января 2010

У меня проблемы с моим NSURLRequest, и я выполняю POST всякий раз, когда строка содержит%, например.

На моем веб-сайте я вижу, что кодировка ISO-8859-1,utf-8 для Accept-Charset, но по какой-то причине я не могу заставить POST работать, если он включает "% & $" и т. Д. Кажется, что он не будет кодировать это с кодировкой UTF-8. Я делаю что-то не так в приведенном ниже коде?

NSData *postData = [credentials dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://www.website.com/login.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

1 Ответ

0 голосов
/ 26 января 2010

Возможно, вы захотите услышать «Content-Transfer-Encoding».

Тип содержимого: текст / обычный текст; кодировка = UTF-8

Content-Transfer-Encoding: двоичный файл

или если у вас есть проблемы с этими символами

Content-Transfer-Encoding: base64

EDIT: «Application / x-www-form-urlencoded» приводит к появлению знаков «%».

...