我在请求正文中使用JSON向API发出http请求。我知道我的Dictionary<String, String>
包含JSON数据是正确的,但我仍然从服务器得到我的输入数据无效的响应。我正在做一些与此类似的事情:Swift 2.0 url post request。我甚至尝试过在那里建议的扩展但没有成功。
我该怎么调试呢?我无法找到将整个请求打印到控制台的任何方法。我想在发送请求之前知道我的URLRequest实际包含的内容。另外,我想知道这个十六进制乱码实际上是我认为的正确的胡言乱语,我该怎么做?
答案 0 :(得分:6)
没什么特别的吗?只需写一个扩展名并打印你想要的任何内容
示例:
extension Data {
func toString() -> String? {
return String(data: self, encoding: .utf8)
}
}
extension URLRequest {
func log() {
print("\(httpMethod ?? "") \(self)")
print("BODY \n \(httpBody?.toString())")
print("HEADERS \n \(allHTTPHeaderFields)")
}
}
用法:
request.log()
示例日志:
POST https://httpbin.org/
BODY
Optional("password=xxx&username=xxx")
HEADERS
Optional(["Content-Type": "application/x-www-form-urlencoded; charset=utf-8"])