gpt4 book ai didi

swift - 如何将字符串转换为包含 a 的 URL?在 Swift 4.2 的字符串中

转载 作者:搜寻专家 更新时间:2023-11-01 06:54:07 26 4
gpt4 key购买 nike

如题,我使用的是Google Places API,URL有一个问号,当我发送请求时,它会变成%3F,我如何通过Swift 4.2修改我的代码??

我找到了很多资料,但他们使用的是 Swift 2 或 3,所以我无法使用!

更新我的代码

let urlString = "\(GOOGLE_MAP_API_BASEURL)key=\(GMS_HTTP_KEY)&input=\(keyword)&sessiontoken=\(ver4uuid!)"
print(urlString)
if let encodedString = urlString.addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics
.union(CharacterSet.urlPathAllowed)
.union(CharacterSet.urlHostAllowed)) {
print("encodedString: \(encodedString)")

最佳答案

您应该只编码查询参数(虽然可能只有 keyword 实际上需要编码),而不是整个 URL。

func urlEncode(_ string: String) -> String {
var allowed = CharacterSet.urlQueryAllowed
allowed.remove(charactersIn: "!*'();:@&=+$,/?%#[]")
return string.addingPercentEncoding(withAllowedCharacters: allowed) ?? ""
)

let urlString = "\(GOOGLE_MAP_API_BASEURL)key=\(urlEncode(GMS_HTTP_KEY))&input=\(urlEncode(keyword))&sessiontoken=\(urlEncode(ver4uuid!))"
print(urlString)

另见 Swift - encode URL关于对 URL 参数进行编码的正确方法。

关于swift - 如何将字符串转换为包含 a 的 URL?在 Swift 4.2 的字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54887177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com