我正在使用 Swift 开发应用。在我的应用中,我从UITextField
和UITextView
获取了一个值,并将该值作为参数发送到 JSON API。我能够发送值,但是当我发送带有空格的值时,我的应用程序崩溃并将错误显示为空值。但是我也需要用空间发送值。例如,获取全名或地址。
代码:
Alamofire.request(.GET, "https://www.something.com/cid="+MyCustId+"", parameters: nil, encoding: .URL, headers: nil).response { (req, res, data, error) -> Void in
let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding)
print(dataString)
}
此处,MyCustId
是从UITextField
获取值的变量。提前致谢!
答案 0 :(得分:0)
您应该通过以下方法将spaces
替换为%20
中的URL
。
func addPercentageToUrl(urlString : String) -> String{
return urlString.addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)!
}
func makeService(){
let url = addPercentageToUrl(urlString : "https://www.something.com/cid="+MyCustId+"")
Alamofire.request(.GET, url, parameters: nil, encoding: .URL, headers: nil).response { (req, res, data, error) -> Void in
let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding)
print(dataString)
}
}
请更新这样的代码。
答案 1 :(得分:0)
请使用stringByAddingPercentEncodingWithAllowedCharacters方法在网址中添加空格
let myStr = strOfUrl.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()