【发布时间】:2023-01-07 22:50:07
【问题描述】:
我在将查询字符串从 swift 传递到 express 时遇到问题。我像这样传递 [String: Any] :
let params = ["id": 1]
对于当前正在执行以下操作的函数:
postString = ""
for param in params {
postString += "\(param.key)=\(content)"
if params.count > 1 && i < params.count {
postString += "&"
}
}
let url = URL(string: "http://localhost:8080/api?" + postString)
guard let requestUrl = url else { fatalError() }
var request = URLRequest(url: requestUrl)
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
let (data, response) = try await URLSession.shared.data(for: request)
因此,当我将其传递给 express 时,我得到了我传入的所有参数,但是它将所有值显示为字符串。这是请求对象:
originalUrl: '/api?id=13',
query: { id: '13' },
如何通过查询字符串正确传递 int?在此先感谢您的帮助。
【问题讨论】:
-
我建议使用
URLComponent和URLQueryItems 来构建 URL 而不是手工制作它。除此之外,在客户端你无能为力,URL 查询参数不携带类型信息。
标签: javascript swift express