如何记录 HTTP POST 请求
Posted
技术标签:
【中文标题】如何记录 HTTP POST 请求【英文标题】:How to log HTTP POST Request 【发布时间】:2015-10-06 11:06:15 【问题描述】:我是 Alamofire 和 Swift 的新手,所以请多多包涵。我正在尝试使用 Alamofire 将产品 JSON 上传到服务器。但是我不断收到状态码:400 failure。有什么方法可以记录发送到服务器的请求,以便我可以检查我的数据格式是否正确。我在下面提供了上传代码。
static func uploadProduct(productJSON: [String : AnyObject])
Alamofire.request(.POST, ServerConfig.ADD_PRODUCT_URL, parameters: productJSON, encoding: .JSON, headers: nil)
.responseJSON(completionHandler: responseRequest, responseResponse, responseResult in
print(responseRequest!.URL)
print(responseResponse)
print(responseResult)
)
这是我得到的错误。
sellers.strawmine.com/api/v1/products/add status code: 400, headers
Connection = "keep-alive";
Date = "Tue, 06 Oct 2015 10:53:44 GMT";
Server = "nginx/1.4.6 (Ubuntu)";
"Transfer-Encoding" = Identity;
)
FAILURE
请帮忙。我在这方面花了很多时间。提前致谢!
【问题讨论】:
只是一个旁注,你为什么不使用ios自带的原生任务。它真的很强大。 没听说过这种事,请详细说明。 请检查例如this question关于发送post请求并解析响应json。 Another question, Another quesiton HTTP 400 = "错误请求"。您的productJSON
参数可能有误。
如果您使用的是 HTTP 而不是 HTTPS,还要检查 NSAppTransportSecurity ***.com/questions/31216758/…
【参考方案1】:
您收到 http 错误 400:http://www.checkupdown.com/status/E400.html
或者简单地说,错误的请求。
我认为您应该检查您的端点是否正确,以及您的服务器是否为该操作配置了路由。不确定你的后端是什么。
【讨论】:
【参考方案2】:您应该通过遵循CustomDebugStringConvertible
协议来利用Request
对象中内置的cURL
支持。
let request = Alamofire.request(.POST, ServerConfig.ADD_PRODUCT_URL, parameters: productJSON, encoding: .JSON)
request.responseJSON request, response, result in
print(request!.URL)
print(response)
print(result)
debugPrint(request)
【讨论】:
以上是关于如何记录 HTTP POST 请求的主要内容,如果未能解决你的问题,请参考以下文章