ios - 如何将 AFNetworking 请求打印为 RAW 数据

标签 ios afnetworking

出于调试目的,我想打印整个请求正文。我正在使用 AFHTTPClient。打印客户端提供了一些信息,例如标题,但不存在发布/获取参数。

有什么办法吗?

最佳答案

内置 AFNetworking 工具

对于 AFNetworking 1.x,使用 AFHTTPRequestOperationLogger .

对于 AFNetworking 2.x,使用 AFNetworkActivityLogger .

这些工具都使用 AFNetworking 广播的 NSNotification 将请求和响应数据记录到控制台。要显示的信息量是可配置的,并且可以将它们配置为忽略某些操作。

在没有这些工具的情况下在 Xcode 中进行检查

HTTP 请求(传出数据)

如果你想检查传出请求的主体,请查看 NSURLRequestHTTPBody 参数,它是你的 AFHTTPRequestOperation.

例如,在方法-[AFHTTPClient getPath: 参数: 成功: failure:],请求发出后,你可以在调试器中输入:

po [[NSString alloc] initWithData:request.HTTPBody encoding:4]

4 是 NSUTF8StringEncoding,在 NSString.h 中定义。

NSURLRequestHTTPMethod 参数提供方法(GET、POST、PUT 等)作为NSString

HTTP 响应(传入数据)

当您的服务器响应时,您的成功完成 block 将传递一个 AFHTTPRequestOperation 对象(默认称为 operation)。您可以:

  • p (int)[[operation response] statusCode]查看状态码
  • po [[operation response] allHeaderFields] 查看标题
  • po [operation responseString]查看响应体
  • po [operation responseObject] 查看响应对象(如果无法序列​​化则可能为nil)

关于ios - 如何将 AFNetworking 请求打印为 RAW 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17473264/

相关文章:

ios - 使用 AFNetworking 2.0 分组或批量请求

ios - 使用导航 Controller 在 View 之间导航

ios - 在 iOS 8.1 模拟器上测试 BTLE App

objective-c - 维护从 xib 加载的自定义单元格内的按钮状态

swift - 错误:Request failed: bad request (400) afnetworking batch in swift

ios - 更改 NSError 的本地化描述语言

ios - 对 dequeueReusableCellWithIdentifier 使用不同的初始化方法

c++ - 更快的 std::insert,或者,如何优化 Instruments 认为速度很慢的调用?

ios - AFNetworking 请求失败,错误代码为 -999

ios - AFNetworking 无法编译