0

我正在调用一个 Json Web 服务,它需要两个参数。用户名和密码。我尝试传递的用户名包含反斜杠 ( \),因为它是域帐户,例如。companyname\jamesd.

这是我的代码。

NSString *sName = @"companyname\\jamesd";

NSString *URL = [NSString stringWithFormat:@"http://checkin.companyname.com:2002/Checkin.svc/checklogin?username=%@&password=pass",sName];

问题是调用 Web 服务时以某种方式删除了反斜杠 -

NSLog(...)用来输出请求的样子 -

<NSURLRequest http://checkin.companyname.com:2002/Checkin.svc/checklogin?username=companynamejamesd&password=pass>

我正在尝试找出如何强制在用户名的 http 请求中包含反斜杠。

4

1 回答 1

1

Mike Weller评论中所述,您必须对参数进行 url 编码。创建 url 字符串后,您应该使用stringByAddingPercentEscapesUsingEncoding:NSString 的方法,例如:

NSString *URL = [NSString stringWithFormat:@"http://checkin.companyname.com:2002/Checkin.svc/checklogin?username=%@&password=pass",sName];
URL = [URL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

您可以根据需要更改编码,检查Apple Docs上的 iOS 编码

还要确保在创建 url 字符串时添加反斜杠。

于 2013-05-15T07:58:50.290 回答