2012-03-07 42 views
0

我必须将参数发布到一个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”)

感谢您的帮助

达尼洛

回答

1

你必须对URL逃逸代码列表在这里:

http://www.december.com/html/spec/esccodes.html

你必须使用%3D转义=

希望它有帮助!

+1

此解决方案的工作..谢谢!我还写了一篇博客文章,其中显示了我用来解决问题的代码:http://ddelizia.blogspot.com/2012/03/ios-dev-post-parameters-to-url-with.html – ddelizia 2012-03-08 10:20:21

0

试着这么做

// path is a NSString 
NSURL* url = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
相关问题