我必须将参数发布到一个url,并且我有一个带有“=”字符的参数,所以我应该转义它。这里附上我在Objective-C中做的事情。NSMutableURLRequest参数中带有“=”字符
for (NSString* key in json) {
NSString *current = [NSString stringWithFormat:@"&%@=%@",key,[json objectForKey:key]];
[post appendString: current];
}
//so post has this style: "&password=eodhxgkpo=&usuario=user1"
NSURL *urlObj = [NSURL URLWithString: itemAddress];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: urlObj];
NSData *requestData = [NSData dataWithBytes:[post UTF8String] length:[post length]];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];
[webView loadRequest: request];
如果密码没有“=”字符,这个相同的代码将起作用。那么有什么方法可以逃避这种类型的字符?
(内容类型必须是 “应用程序/ x-WWW的形式,进行了urlencoded”)
感谢您的帮助
达尼洛
此解决方案的工作..谢谢!我还写了一篇博客文章,其中显示了我用来解决问题的代码:http://ddelizia.blogspot.com/2012/03/ios-dev-post-parameters-to-url-with.html – ddelizia 2012-03-08 10:20:21