gpt4 book ai didi

swift - 我怎样才能使用 # 符号而不是 ?在 URLQueryItem 中?

转载 作者:行者123 更新时间:2023-11-28 12:11:18 28 4
gpt4 key购买 nike

如果我创建这样的 URL:

    guard var urlComponents = URLComponents(url: "https://example.com/something", resolvingAgainstBaseURL: false) else {
return
}

let queryItems = URLQueryItem(name: "token", value: token)
urlComponents.queryItems = [queryItems]

guard let urlWithQueryItem = urlComponents.url else {
return
}

我希望最终结果类似于 https://example.com/something#token=7as78f6asd678768asd768asd678

而不是默认的https://example.com/something?token=7as78f6asd678768asd768asd678

(我正在寻找比搜索和替换 ? 字符更智能的东西)

谢谢

最佳答案

正如其他人所指出的,URLQueryItem 对象更适合用于查询字符串而不是 anchor /片段。话虽如此,下面的功能可以帮助您完成您的问题。

func constructURL(withURL urlBase: String, andFragmentFromQueryItem queryItem: URLQueryItem) -> URL?{

guard let url = URL(string:urlBase) else {
return nil
}

guard var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false) else {
return nil
}

let fragmentKey = queryItem.name
let fragmentValue = queryItem.value ?? ""

urlComponents.fragment = "\(fragmentKey)=\(fragmentValue)"

guard let urlWithFragment = urlComponents.url else {
return nil
}

return urlWithFragment

}

let url = constructURL(withURL:"https://example.com/something",
andFragmentFromQueryItem: URLQueryItem(name: "token", value: "tokenValue"))
let urlString = url?.absoluteString
print("\(urlString!)")

这里是代码的工作 Swift fiddle 的链接。 http://play.swiftengine.io/code/8JKI3/2

关于swift - 我怎样才能使用 # 符号而不是 ?在 URLQueryItem 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453880/

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