2016-09-22 53 views
-1

当我尝试运行下面的代码片段它的作品!意外地发现零,而展开一个可选值 - NSMutableURLRequest

let urlWithParams = "http://192.168.0.4:3003/manager/all" 
    let request = NSMutableURLRequest(URL: NSURL(string: urlWithParams)!) 

但是,当我从Settings.bundle文本字段的字符串下面的代码不起作用:

let webServer:String = NSUserDefaults().stringForKey("priceWeb")! 
    serverResponse.appendContentsOf(webServer) 
    serverResponse.appendContentsOf("/manager/all") 
    let request = NSMutableURLRequest(URL: NSURL(string: serverResponse)!) 

当我执行

print(webServer); 

输出为http://192.168.0.4:3003,当我执行

print(serverResponse); 

输出http://192.168.0.4:3003/manager/all

但还是错误出现在以下行:

let request = NSMutableURLRequest(URL: NSURL(string: serverResponse)!) 

致命错误:意外发现零而展开的可选值

注:请提供所有快速回答

回答

1

You must encode your url as it contains special characters.

试试这个

let urlWithParams = "http://192.168.0.4:3003/manager/all" 
let urlStr = urlWithParams.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! // or use let urlStr = urlWithParams.stringByAddingPercentEncodingWithAllowedCharacters(.URLQ‌​ueryAllowedCharacter‌​Set()) 
let request = NSMutableURLRequest(URL: NSURL(string: urlStr)!) 

更多的参考看到苹果Documents

+1

什么是'“http://192.168.0.4:3003/manager/all”'那需要转义特殊字符?我看不出它对* this * URL字符串有什么影响。 –

+0

NSErrorFailingURLStringKey =%20http://192.168.0.4:3003/manager/all,NSErrorFailingURLKey =%20http://192.168.0.4:3003/manager/all,NSLocalizedDescription =不支持的URL 得到这个错误! – Abiranjan

+0

@Abiranjan:在“http”之前你似乎有一个*空格字符*,它不属于那里。 –

相关问题