如何调试网络请求Swift

时间:2016-01-09 22:25:57

标签: json swift

我在请求正文中使用JSON向API发出http请求。我知道我的Dictionary<String, String>包含JSON数据是正确的,但我仍然从服务器得到我的输入数据无效的响应。我正在做一些与此类似的事情:Swift 2.0 url post request。我甚至尝试过在那里建议的扩展但没有成功。

我该怎么调试呢?我无法找到将整个请求打印到控制台的任何方法。我想在发送请求之前知道我的URLRequest实际包含的内容。另外,我想知道这个十六进制乱码实际上是我认为的正确的胡言乱语,我该怎么做?

1 个答案:

答案 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"])