Ios 如何发送用户名中包含@的NSURL请求

Ios 如何发送用户名中包含@的NSURL请求,ios,nsurlconnection,nsurl,nsurlrequest,Ios,Nsurlconnection,Nsurl,Nsurlrequest,如何发送用户名中包含@字符的url请求? 当前我的url请求代码如下所示: NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://user@exam.com:pwd@example.com"]]; 上面的代码是从site exam.com而不是example.com获取数据 如何使用从example.com获取数据user@exam.com用户名和密码? 我尝试了像\这样的转义序列来

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

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://user@exam.com:pwd@example.com"]];
上面的代码是从site exam.com而不是example.com获取数据

如何使用从example.com获取数据user@exam.com用户名和密码?


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

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

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

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

NSString * encodedString = [q stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

NSURL *requestURL = [NSURL URLWithString:encodedString];

您是否尝试将第一个@url编码为%40?