我正在调用Json Web Service,它需要两个参数。用户名和密码。
我正在尝试传递的用户名包括反斜杠(\
),因为它是域帐户,例如。 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请求中包含反斜杠。
答案 0 :(得分:1)
与注释中所述的Mike Weller
类似,您必须对参数进行url编码。创建url字符串之后,应该使用NSString的stringByAddingPercentEscapesUsingEncoding:
方法:
NSString *URL = [NSString stringWithFormat:@"http://checkin.companyname.com:2002/Checkin.svc/checklogin?username=%@&password=pass",sName];
URL = [URL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
您可以根据需要更改编码,请检查Apple Docs
上的iOS编码还要确保在创建url字符串时添加反斜杠。