出于调试目的,我想打印整个请求正文。我正在使用 AFHTTPClient。打印客户端提供了一些信息,例如标题,但不存在发布/获取参数。
有什么办法吗?
最佳答案
内置 AFNetworking 工具
对于 AFNetworking 1.x,使用 AFHTTPRequestOperationLogger
.
对于 AFNetworking 2.x,使用 AFNetworkActivityLogger
.
这些工具都使用 AFNetworking 广播的 NSNotification
将请求和响应数据记录到控制台。要显示的信息量是可配置的,并且可以将它们配置为忽略某些操作。
在没有这些工具的情况下在 Xcode 中进行检查
HTTP 请求(传出数据)
如果你想检查传出请求的主体,请查看 NSURLRequest
的 HTTPBody
参数,它是你的 AFHTTPRequestOperation的一个属性
.
例如,在方法-[AFHTTPClient getPath:
参数:
成功:
failure:]
,请求发出后,你可以在调试器中输入:
po [[NSString alloc] initWithData:request.HTTPBody encoding:4]
4 是 NSUTF8StringEncoding
,在 NSString.h 中定义。
NSURLRequest
的HTTPMethod
参数提供方法(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/