我现在正在寻找在Alamofire Content-Type application / json中为PUT方法添加content-type: application/json
的解决方案。我发展如下,但工作不正常。
Alamofire.request(.PUT, Config.preferenceURL, parameters: param, headers: headers)
.validate(contentType: ["application/json"])
.responseJSON { response in
let swiftyJsonVar = JSON(response.result.value!)
print(swiftyJsonVar)
if (swiftyJsonVar["success"]) {
}
JHProgressHUD.sharedHUD.hide()
}
答案 0 :(得分:1)
您需要在encoding: .JSON
方法中指定request
。否则,它会将您的参数编码为URL中的查询参数。使用.JSON
编码,系统会自动为您设置Content-Type
标题。
Alamofire.request(.PUT, Config.preferenceURL, parameters: param, encoding: .JSON, headers: headers)
您还可以使用debugPrint
API打印与您要发送到服务器的请求相当的cURL
命令。
let request = Alamofire.request(.PUT, Config.preferenceURL, parameters: param, encoding: .JSON, headers: headers)
debugPrint(request)
干杯。
答案 1 :(得分:0)
添加content-type: application/json
如下所示: -
let URL = NSURL(string: "https://httpbin.org/post")!
let mutableURLRequest = NSMutableURLRequest(URL: URL)
mutableURLRequest.HTTPMethod = "POST"
let parameters = ["foo": "bar"]
do {
mutableURLRequest.HTTPBody = try NSJSONSerialization.dataWithJSONObject(parameters, options: NSJSONWritingOptions())
} catch {
// No-op
}
mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
Alamofire.request(mutableURLRequest)