【问题标题】:Sending a POST request in swift but getting a 405 response (method not allowed)快速发送 POST 请求但得到 405 响应(不允许的方法)
【发布时间】:2019-03-19 17:03:27
【问题描述】:

我正在向 API 发出 POST 请求。我已经使用 Postman 和另一个第三方工具测试了 API,我得到了 200 响应。但是,当我从 swift 发出请求时,我收到 405 响应(不允许使用方法)和一条错误消息,指出即使我正在发出 POST 请求,也不允许“GET”请求。

我已经检查了肯定包含数据的 httpBody。我只是无法弄清楚我在这里做错了什么。这是我的代码:

    let json : [Dictionary<String,Any>] = [["label" : "Misc", "ignored": true], ["label" : "Cash", "ignored": false]]
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.setValue("application/json", forHTTPHeaderField: "Accept")
    request.httpBody = try? JSONSerialization.data(withJSONObject: json)

    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        if let response = response {
            print(response)
        }
    }

    task.resume()

【问题讨论】:

  • 使用 POSTMAN,您可以生成 Swift 代码并检查您的代码与 Postman 的代码有什么区别。
  • 能否提供 Postman 请求的截图?

标签: ios swift post alamofire urlrequest


【解决方案1】:

尝试使用

URLSession(configuration: URLSessionConfiguration.default)

而不是

URLSession.shared

我遇到了同样的问题,这对我有用。

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2017-01-27
    • 2013-10-10
    • 2014-05-23
    • 2019-02-15
    • 2018-08-22
    相关资源
    最近更新 更多