【问题标题】:Log ASIFormDataRequest body as NSString将 ASIFormDataRequest 正文记录为 NSString
【发布时间】:2012-07-26 14:25:18
【问题描述】:

我正在使用 ASIFormDataRequest 向服务器发出多部分请求,并且我想在实际发出请求之前自己查看帖子正文。有什么办法可以将它打印到控制台或类似的东西上?

【问题讨论】:

标签: objective-c ios asihttprequest asiformdatarequest


【解决方案1】:

原来我只是需要

#define DEBUG_FORM_DATA_REQUEST 1

之后,库将所有帖子正文记录到控制台(二进制数据除外,它被截断)。

【讨论】:

    【解决方案2】:
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setStartedBlock:^{
             NSLog(@"setStartedBlock", request.requestHeaders);
    }];
    ...
    [request startAsynchronous];
    

    StartedBlock 是实际与服务器建立连接之前的最后一个回调。

    您可以使用我发布的内容记录您的整个标题,或者如果您只想要发布数据,您可以使用 james 的 NSLog。

    【讨论】:

    • 完全忘记了这些块。谢谢,这对于检索标题很有用。但是,它不适用于帖子正文。我找到了另一种方式。
    【解决方案3】:

    你可以试试:

    NSLog(@"%@", dataRequest.postData);
    

    如果您可以包含一些代码,那将会很有帮助。

    【讨论】:

    • 据我所知,ASIFormDataRequest 没有属性 postData,它有 postBody 类型的 NSMutableData。尝试按照@endy 的建议从startedBlock 读取它,但它在那里没有。
    【解决方案4】:

    我现在无法评论答案,所以我将创建一个答案:

    正如 James Paolantonio 所说,您可以使用 NSLog dataRequest.postData,但您只需要做的就是:通过移动代码公开此属性

    @property (retain) NSMutableArray *postData;
    

    ASIFormDataRequest.mASIFormDataRequest.h

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多