AFNetworking 2:它实际上发送了什么?

AFNetworking 2: What's it actually sending?

我正在使用 POST:parameters:constructingBodyWithBlock:。我相信我尝试发送的内容是正确的,但我从服务器收到了 HTTP 400。所以整个数据包或其中一部分的编码方式有问题。我对此有一些理论,但在我做任何其他事情之前,我想看看我发送的数据实际上是什么样的。

查看 AFNetworking 实际发送用于调试目的的最佳方法是什么?

我尝试过深入追踪,但当我到达 AFMultipartBodyStream 时我迷路了。我不确定如何在不严重攻击 AFNetworking 的情况下捕获其数据。

对于后来好奇的人,我发现这在失败或成功块中效果很好:

NSMutableData *data = [NSMutableData data];
NSInputStream *stream = [operation.request.HTTPBodyStream copy];
[stream open];
BOOL done = NO;
while (!done) {
    NSMutableData *buffer = [NSMutableData dataWithLength:1024];
    buffer.length = [stream read:buffer.mutableBytes maxLength:buffer.length];
    if (buffer.length) {
        [data appendData:buffer];
    } else {
        done = YES;
    }
}
[stream close];

生成的数据对象可以写入磁盘,但如果参数完全是字符串(而不是二进制文件),则只能直接转换为字符串。