如何在用户名中发送包含“@”的NSURL请求



如何发送用户名中包含@字符的url请求
目前我的url请求代码如下:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://user@exam.com:pwd@example.com"]];

上面的代码是从网站exam.com而不是example.com获取数据

如何使用从example.com获取数据user@exam.com作为用户名,pwd作为密码

我尝试了像这样的转义序列来转义@字符,但仍然不起作用。

在从参数生成NSURL之前,始终对参数进行编码

 NSString * encodedUsername = (NSString *)CFURLCreateStringByAddingPercentEscapes(
    NULL,
    (CFStringRef)unencodedUsername,
    NULL,
    (CFStringRef)@"!*'();:@&=+$,/?%#[]",
    kCFStringEncodingUTF8 );

您可以在使用字符串生成如下url之前对其进行编码:

NSString * encodedString = [q stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *requestURL = [NSURL URLWithString:encodedString];

最新更新