2013-05-15 25 views
0

我在調用一個Json Web Service,它需要兩個參數。用戶名和密碼。 我試圖通過的用戶名包括一個反斜槓(\),因爲它是一個域帳戶,例如。 companyname\jamesdIOS將反斜槓作爲url參數的一部分傳遞給Json Web Service

這是我的代碼。

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字符串像後,您應該使用NSString的stringByAddingPercentEscapesUsingEncoding:方法:

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

可以將編碼更改爲你想要的,檢查的iOS編碼上Apple Docs

另外,還要確保你在創建url字符串時添加反斜槓。

+0

謝謝danypata - 解決方案完美無缺。 –