【问题标题】:Swift Query String Passing Int As String To ExpressSwift Query String 传递 Int 作为 String 来表达
【发布时间】: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?在此先感谢您的帮助。

【问题讨论】:

  • 我建议使用 URLComponentURLQueryItems 来构建 URL 而不是手工制作它。除此之外,在客户端你无能为力,URL 查询参数不携带类型信息。

标签: javascript swift express


【解决方案1】:

查询参数不包含类型信息并且始终是字符串。您需要 parseInt 参数值(并适当处理错误)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多