如何在用户名中发送包含@
字符的网址请求?
目前我的网址请求代码如下:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://user@exam.com:pwd@example.com"]];
上面的代码是从网站exam.com而不是example.com
获取数据如何从user.com获取数据,用user@exam.com作为用户名,pwd作为密码?
我尝试使用\
之类的转义序列来转义@
字符,但仍无效。
答案 0 :(得分:2)
在从他们制作NSURL之前始终对您的参数进行编码
NSString * encodedUsername = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedUsername,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );
答案 1 :(得分:0)
您可以在使用字符串之前对其进行编码,以生成如下所示的网址:
NSString * encodedString = [q stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *requestURL = [NSURL URLWithString:encodedString];