IOS将反斜杠作为url参数的一部分传递给Json Web Service

时间:2013-05-15 07:53:46

标签: ios json http parameters

我正在调用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请求中包含反斜杠。

1 个答案:

答案 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字符串时添加反斜杠。