gpt4 book ai didi

ios - 为什么我的 http POST 正文的一个版本不起作用?

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

我正在尝试使用 POST 向 API 发送内容。帖子正文由 x 2 个属性组成。

如果我将帖子正文创建为一个长字符串:让 postBody = "ministryId=nameOfMinistryHere&personId=1005" 然后按如下方式对字符串进行编码 urlRequest.httpBody = postBody.data(using: String.Encoding.utf8) 它完美地工作.

但我试图将帖子创建为字典,然后将其传递给 API,但无法使其正常工作。

let postBody = ["ministryId":"nameOfMinistry", "personId":"1005"]
do {
try urlRequest.httpBody = JSONSerialization.data(withJSONObject: postBody, options: .prettyPrinted)
} catch {
print("problems serializing data")
}

当我使用后一个选项时,我从服务器收到 400 错误。

我错过了什么?

提前致谢。

最佳答案

URLComponents 是处理多个参数的类。代码片段:

let postBody = ["ministryId":"nameOfMinistry", "personId":"1005"]

let urlComponents = URLComponents(string: myURL)
let urlRequest = URLRequest(url: urlComponents.url!)

// transform the dictionary into queryItems
urlComponents.queryItems = postBody.map { URLQueryItem(name: $0, value: $1) }

urlRequest.httpBody = urlComponents.percentEncodedQuery?.data(using: String.Encoding.utf8)

关于ios - 为什么我的 http POST 正文的一个版本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42190117/

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