Ios 来自Swift的POST请求在“邮递员”中工作时失败

Ios 来自Swift的POST请求在“邮递员”中工作时失败,ios,swift,Ios,Swift,我有一个django REST api,当通过POSTMAN或android客户端调用时,它可以完美地工作。然而,当我试着用Swift打电话给它时,我得到了一个405 这是我的密码 import Foundation let url = URL(string: "http://example.com/xx/x/xxx/sports")! var request = URLRequest(url: url) request.setValue("application/json", forHTTP

我有一个django REST api,当通过POSTMAN或android客户端调用时,它可以完美地工作。然而,当我试着用Swift打电话给它时,我得到了一个405

这是我的密码

import Foundation

let url = URL(string: "http://example.com/xx/x/xxx/sports")!
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
let postString = "client_id=xx&client_secret=yy"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
    guard let data = data else {return}
    do{
        //try validate(response)
        //parse data
        print(response)
    }catch{
        print(error)
    }

    //print(String(describing: data))
}
task.resume()
有人能帮我吗

405方法不允许响应状态代码指示请求 方法是服务器已知的,但目标不支持该方法 资源

服务器必须在405响应中生成允许标头字段 包含当前支持的目标资源的列表 方法

检查httpMethod。您可能需要
GET
或其他HTTP方法,而不是
POST

更新: 替换
let postString=“client\u id=xx&client\u secret=yy”
具有
let postString=“{client\u id=\“xx\”,client\u secret=\“yy\”}”

您还应该使用
URLSession.shared.dataTask(with:request)
而不是
url
。请参阅下面的代码:

URLSession.shared.dataTask(with: request) { data, response, error in
  if let response = response, let data = data {
    print(response)
    print(String(data: data, encoding: .utf8))
  } else {
    print(error)
  }
}
当你使用

let task = URLSession.shared.dataTask(with: url) { (data, response, error) in...
您的
请求
设置代码被忽略。GET方法是默认方法,在上不允许使用它 你的服务器

我有一个django REST api,当通过POSTMAN调用时,它可以完美地工作 或者安卓客户端

如果它是对邮递员的工作,那么你可以从它本身获得代码。复制代码并粘贴到操场上。它应该会起作用。
与您的代码进行比较。解决问题。

另一件要检查的事情:允许在信息中加载不安全的HTTP。plistI正在尝试在游乐场上调用此功能。因此我尝试使用python检查此功能,它工作正常,
>>导入请求>>>r=requests.post(“http://example.com,数据={“客户机id”:“xxx”,“客户机机密”:“yyy”})>>>r.status\u code 200
@MelissaStewart尝试将
let postString=“client\u id=xx&client\u secret=yy”
替换为
let postString=“{client\u id=\'xx\”,client\u secret=\'yy\”