URL不接受查询字符串或(|)参数swift 3

时间:2017-12-13 05:20:02

标签: swift3 nsurl

我正在尝试使用多种类型实现附近的搜索Google网络服务,例如查询 type = department_store | grocery_or_supermarket

所以,我准备了一个如下所述的查询字符串,它在浏览器中工作正常

let query = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=28.965198333333333,77.98569833333333&radius=3218&type=department_store|grocery_or_supermarket&key=API_KEY"

当我尝试将其转换为如下所述的网址时,它会向我显示错误&#34;网址无效&#34; ,因为网址不接受查询字符串或(|)参数< / p>

guard let url = URL(string: query) else { return completion(.Failure("URL invalid")) }

虽然单一类型可以正常工作 的类型= department_store

let query = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=28.965198333333333,77.98569833333333&radius=3218&type=grocery_or_supermarket&key=API_KEY"

请建议,如何在附近的搜索网络服务中使用多种类型。

提前致谢。

1 个答案:

答案 0 :(得分:1)

添加百分比编码:

guard let escapedQuery = query.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed),
      let url = URL(string: escapedQuery) else { return completion(.Failure("URL invalid")) }