gpt4 book ai didi

Swift URLComponents 未正确转换空格

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

我在 Swift 4 中有一个非常简单的 GET 请求,使用 URLSession 作为 dataTask 并使用 URLComponents 创建 URL/字符串。

我遇到的问题如下面的代码片段所示

var url = URLComponents(string: "http://myServer.com:8086/query")
url?.queryItems = [
URLQueryItem(name: "db", value: "Database"),
URLQueryItem(name: "q", value: ("SELECT valueOne,valueTwo FROM \"TABLE\" WHERE \"valueOne\"='\(currValue)' ORDER BY time DESC LIMIT 1"))
]
NSLog((url?.url?.absoluteString)!)

/*
NSLog: http://myServer.com:8086/query?db=Database&q=SELECT2alueOne,valueTwo
0.000000ROM222TABLE220WHERE222valueOne23D'currValue'
0RDER2Y 0me -8ESC2MIT2
*/

我尝试直接构建URL,并在字符串的查询部分应用addingPercentEncodingurlQueryAllowed,但我仍然得到相同的结果。唯一部分起作用的是用“+”替换查询中的空格,但转义的倒逗号仍然存在问题。我对 Swift 很陌生,所以我的假设是我错过了一些非常明显的东西。任何及所有帮助将不胜感激。

最佳答案

我创建了这个函数来生成 URL。您可以使用此函数创建包含安全 ASCII 字符的 URL。

func urlGenretor() -> URL{
var components = URLComponents()
components.scheme = "https"
components.host = "myServer.com:8086"
components.path = "/query"
let database = URLQueryItem(name: "db", value: "Database")
let queryItem2 = URLQueryItem(name: "q", value: ("SELECT valueOne,valueTwo FROM \"TABLE\" WHERE \"valueOne\"='\(currValue)' ORDER BY time DESC LIMIT 1"))
components.queryItems = [database,queryItem2]
let url = components.url
print(url!)
return url!

关于Swift URLComponents 未正确转换空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081333/

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