gpt4 book ai didi

iOS - HTTP 方法不发出 POST 请求而是发出 GET

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:26 24 4
gpt4 key购买 nike

我正在尝试使用 URLSession(和 AlamoFire)在我的应用程序中进行 POST 调用,但都没有成功,我正在检查 Charles Proxy 上的网络调用,它总是作为 GET 调用发送,即使我已经将 HTTPMethod 指定为“POST”或 .post。

最奇怪的部分是更新对“DELETE”或“PUT”的调用将起作用......只是不是“POST”或.post

我试过在 URLSession 中从头开始构建请求而不是使用 AlamoFire,尝试更改 HTTPMethod(有效,只是不适用于 POST)

让session = URLSession.shared let url = URL(string: endpointURL)!

    var request = URLRequest(url: url)
request.httpMethod = "POST"

let jsonData: Data = try! requestProto.serializedData()

let task = session.uploadTask(with: request, from: jsonData) { data, response, error in
print("request made")
}

task.resume()

预期:Charles 记录一个 POST 调用实际情况:Charles 正在为 GET 和 POST 调用记录 GET 调用,但 DELETE 和 PUT 工作正常。

最佳答案

用 URLSession 试试这个

// create a `URLRequest` because post are urlRequest used with  urlSession.shared.uploadTask
var request = URLRequest(url: url)

// here pass in data format the body of the request
request.httpBody = body

// the request method.
request.httpMethod = "post"

// required when send a json type in request
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

URLSession.shared.uploadTask(with: request, from: nil) { (data, response, error) in
let response = (response as? HTTPURLResponse)?.statusCode
if (response! == 500 ){
print("error")
}
print("request made")
}.resume()

关于iOS - HTTP 方法不发出 POST 请求而是发出 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57154993/

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