我遇到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];
答案 0 :(得分:0)
您可能希望听到“Content-Transfer-Encoding”。
Content-Type:text / plain;字符集= UTF-8
Content-Transfer-Encoding:二进制
或者如果您对这些字符有特殊问题
Content-Transfer-Encoding:base64
编辑: “application / x-www-form-urlencoded”使“%”符号发生。