【问题标题】:IOS passing backslash as part of url parameter to Json Web ServiceIOS 将反斜杠作为 url 参数的一部分传递给 Json Web 服务
【发布时间】:2013-05-15 07:53:46
【问题描述】:

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

【问题讨论】:

  • 您需要对参数进行 url 编码。以前有很多关于这个的问题。

标签: ios json http parameters


【解决方案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 字符串时添加反斜杠。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多