我正在使用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中的回复。
有人可以帮忙吗
答案 0 :(得分:1)
首先在你的邮递员请求中,你将你的身体张贴为x-www-form-urlencoded
,但在你的Swift示例中,你也指定了这个标题。但您实际上是将POST主体作为JSON有效负载提交。相反,您的邮递员请求是一组键/值对。
此外,这两个键的名称与Swift示例和Postman示例的名称不同。
Swift使用UPC
和DATE_TIME
而Postman有upc_app
和dttm_app
,因此您至少要确保发送API所期望的内容