Mar*_*ark 6 alamofire swift3 xcode8
当我升级到最新的一切(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
}
Run Code Online (Sandbox Code Playgroud)
小智 18
我遇到了类似的问题,我将编码从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)")
}
}
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,并最终修复它.URLEncoding.httpBody对我不起作用......但URLEncoding.default确实如此.
所以我将JSONEncoding.default更改为URLEncoding.default.
它现在将参数传递给后端.
Alamofire.request(loginURL, method: .post, parameters: params, encoding: URLEncoding.default, headers: nil)
Run Code Online (Sandbox Code Playgroud)
一切都按其应有的方式进行。这是一个证明这一事实的简单示例。
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)
}
Run Code Online (Sandbox Code Playgroud)
希望这个例子能帮助您查明问题。干杯。
| 归档时间: |
|
| 查看次数: |
9743 次 |
| 最近记录: |