使用POST发送数据,发出字符编码问题

时间:2010-01-26 20:13:40

标签: iphone httprequest nsmutableurlrequest

我遇到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 :(得分:0)

您可能希望听到“Content-Transfer-Encoding”。

Content-Type:text / plain;字符集= UTF-8

Content-Transfer-Encoding:二进制

或者如果您对这些字符有特殊问题

Content-Transfer-Encoding:base64

编辑: “application / x-www-form-urlencoded”使“%”符号发生。

相关问题