POST请求无法在swift3中使用alamofire

时间:2016-12-31 19:20:18

标签: swift post alamofire

我正在使用Alamofire来调用我的API。

下面是代码。

func alamofirePost() {
let headers: HTTPHeaders = [ "content-type": "x-www-form-urlencoded"]
let todosEndpoint: String = "http://54.244.108.186:4000/api/post_upc"
let newTodo: [String: Any] = ["UPC": codeTextView.text, "DATE_TIME":         currentTime() ]
print("i am in alamo")
Alamofire.request(todosEndpoint, method: .post, parameters: newTodo ,encoding: JSONEncoding.default,headers: headers )
.responseJSON { response in
guard response.result.error == nil else {
// got an error in getting the data, need to handle it
print("error calling POST on /todos/1")
print(response)
print(response.result.error!)
return
}

当我调用该函数时,它试图在数据库中插入空值

INSERT INTO `UPC`(`UPC`,`DATE_TIME`) VALUES (NULL,NULL)

以下是我在postman app中的回复。

enter image description here

有人可以帮忙吗

1 个答案:

答案 0 :(得分:1)

首先在你的邮递员请求中,你将你的身体张贴为x-www-form-urlencoded,但在你的Swift示例中,你也指定了这个标题。但您实际上是将POST主体作为JSON有效负载提交。相反,您的邮递员请求是一组键/值对。

此外,这两个键的名称与Swift示例和Postman示例的名称不同。

Swift使用UPCDATE_TIME而Postman有upc_appdttm_app,因此您至少要确保发送API所期望的内容