当我升级到最新的一切(Alamo 4,Swift 3和XC 8)时,以下停止发布参数,我不知道为什么......
let params = ["stripeToken": token.tokenId,
"name": name,
"email": email
]
Alamofire.request(requestString, method: .post, parameters: params, encoding: JSONEncoding.default)
.responseJSON { (response) in
if response.result.value is NSNull {
return
}
答案 0 :(得分:17)
我有类似的问题,我将编码从JSONEncoding.default改为URLEncoding.httpbody或编码:URLEncoding.default
Alamofire.request(URL, method: .post, parameters: params, encoding: URLEncoding.httpBody).responseJSON { response in
if let data = response.data {
let json = String(data: data, encoding: String.Encoding.utf8)
print("Response: \(json)")
}
}
答案 1 :(得分:7)
我有同样的问题并最终解决了。 URLEncoding.httpBody对我不起作用......但是URLEncoding.default没有。
所以我将 JSONEncoding.default 更改为 URLEncoding.default 。
现在将参数传递给后端。
Alamofire.request(loginURL, method: .post, parameters: params, encoding: URLEncoding.default, headers: nil)
答案 2 :(得分:1)
一切都完全正常。这是一个证明这一事实的简单例子。
func testPostingJSON() {
let urlString = "https://httpbin.org/post"
let params: Parameters = [
"stripeToken": "token_id",
"name": "cnoon",
"email": "cnoon@alamofire.org"
]
let expectation = self.expectation(description: "should work")
Alamofire.request(urlString, method: .post, parameters: params, encoding: JSONEncoding.default)
.responseJSON { response in
if let json = response.result.value {
print("JSON: \(json)")
} else {
print("Did not receive json")
}
expectation.fulfill()
}
waitForExpectations(timeout: 5.0, handler: nil)
}
希望这个例子可以帮助您查明问题。干杯。