我需要从api获取信息,但是在查询中看起来像这样:http://website.name&q=chocolate
我的问题是,我要寻找一个特定的大小,我需要添加%20的空格。例如,寻找250克巧克力: http://website.name&q=chocolate%20250g。 Swift无法识别250g,它给我一个错误:无效的url字符串。如何制作查询中带有数字的json网址?
编辑:
let jsonUrlString = self.getJsonUrl(pCode: postalCode, key: searchKey)
guard let url = URL(string: jsonUrlString) else {return}
我将这个URL用于URLSession。
我使用以下代码来格式化查询中的间距:
private func formatSearchKey(key: String)->String{
return key.replacingOccurrences(of: " ", with: "%20")
}
例如,当我从查询中删除数字时,cookies%20和%20milk就可以了。当我做250g饼干:cookies%20250g之类的操作时,它会给我一个错误
编辑2.0
private func getJsonUrl(pCode: String, key: String) -> String{
//Create a function that creates a url based on postal code, and key values that it gets back from my database
return "\(JSON_URL_BASE)postal_code=\(pCode)&q=\(key)"
}
private func formatPostalCode(pCode: String) -> String{
return pCode.replacingOccurrences(of: " ", with: "")
}
private func formatSearchKey(key: String)->String{
return key.replacingOccurrences(of: " ", with: "%20")
}
关键值是我遇到的麻烦。有时,它们会返回有效的字符串,例如“饼干和牛奶”。但是,当它返回“ cookies 250g”时,它没有。