Swift REST请求PUT可选(502坏网关:注册的端点无法处理请求。)

Swift REST请求PUT可选(502坏网关:注册的端点无法处理请求。),swift,xcode,rest,nsurlsession,nsmutableurlrequest,Swift,Xcode,Rest,Nsurlsession,Nsmutableurlrequest,我正在尝试使用Swift执行一个PUT请求。在REST客户端中,当我尝试按以下方式执行REST请求时: 在Body-x-www-form-urlencoded中,我添加了vote=1,并在参数中使用id,例如:/user/:id,它可以工作 我尝试在Swift代码中执行同样的操作,但它不起作用,我得到了responseString=Optional(502坏网关:注册的端点无法处理请求。 这是我的密码: var baseURL = "http://<domain>/user" let

我正在尝试使用Swift执行一个
PUT
请求。在REST客户端中,当我尝试按以下方式执行REST请求时:

在Body-x-www-form-urlencoded中,我添加了
vote=1
,并在参数中使用id,例如:
/user/:id
,它可以工作

我尝试在Swift代码中执行同样的操作,但它不起作用,我得到了
responseString=Optional(502坏网关:注册的端点无法处理请求。

这是我的密码:

var baseURL = "http://<domain>/user"
let putURL = baseURL + "/\(id)"

print(putURL)
let request = NSMutableURLRequest(URL: NSURL(string: putURL)!)
request.HTTPMethod = "PUT"

let putString = "vote=1"
request.HTTPBody = putString.dataUsingEncoding(NSUTF8StringEncoding)
request.timeoutInterval = 1500

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
    data, response, error in
    guard error == nil && data != nil else {
        print("error=\(error)")
        return
    }

    let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
    print("responseString = \(responseString)")
}
task.resume()
var baseURL=”http:///user"
让putURL=baseURL+“/\(id)”
打印(putURL)
let request=NSMutableURLRequest(URL:NSURL(字符串:putURL)!)
request.HTTPMethod=“PUT”
让putString=“投票=1”
request.HTTPBody=putString.dataUsingEncoding(NSUTF8StringEncoding)
request.timeoutInterval=1500
让task=NSURLSession.sharedSession().dataTaskWithRequest(请求){
数据、响应、错误
保护错误==nil&&data!=nil else{
打印(“错误=\(错误)”)
返回
}
让responseString=NSString(数据:data!,编码:NSUTF8StringEncoding)
打印(“responseString=\(responseString)”)
}
task.resume()

您忘记设置内容类型,例如

request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
否则,服务器将不知道如何处理您刚刚发送的随机数据块


我并不是说这一定是唯一的问题,但这肯定是一个问题,而且这个问题大到足以导致您看到的错误。

您忘记设置内容类型,例如

request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
否则,服务器将不知道如何处理您刚刚发送的随机数据块


我并不是说这一定是唯一的问题,但这肯定是一个问题,而且这个问题大到足以导致您看到的错误。

通常5XX错误代码表示服务器端出现故障。如果服务器是您的,您可以对其进行调试,以了解出了什么问题。请确保检查您发送的头和参数的格式eters。通常5XX错误代码表示服务器端出现故障。如果服务器是您的,则可以对其进行调试,以了解出现的错误。请确保检查发送的标题以及参数的格式。