AFNetworking 2:实际发送的内容是什么?

时间:2015-01-29 19:53:15

标签: afnetworking-2

我正在使用POST:parameters:constructingBodyWithBlock:。我相信我试图发送的部分是正确的,但我从服务器获得HTTP 400。因此,整个数据包或其中的一部分是如何被编码的。我有一些关于这个的理论,但在我做任何其他事情之前,我想看看我发送的数据实际上是什么样的。

查看AFNetworking为调试目的实际发送的内容的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:0)

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

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];

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