ASIHTTPRequest随每个请求发送数据

时间:2011-08-20 21:56:02

标签: iphone objective-c ios ipad asihttprequest

我有一个包含JSON提要的URL的数组。我正在使用ASIHTTPRequest下载源并处理它。每个Feed包含多个JSON条目或对象。 request下载数据并仅选择一个对象并存储它。

供稿网址如下所示:http:www。 * .com / id.json,其中id是一些字符串。下载数据并选择对象后,我想将id存储在字典中,作为映射到下载对象值的键。

如何通过请求传递该字符串?例如:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.tag = 3;
[request setDelegate:self];
[request startAsynchronous];

现在在requestFinished,我可以按如下方式识别该请求:if (request.tag == 3。随着3的tag,我想发送ID。所以我可以在if (request.tag == 3)中使用它做些什么。是否有一些属性可以传递字符串或任何数据以及请求?

1 个答案:

答案 0 :(得分:3)

您可以在userInfo属性中传递自己的数据字典,与tag属性一样,可以在收到响应后在请求中回读。

NSString* jsonId = @"1234";
request.userInfo = [NSDictionary dictionaryWithObject:jsonId forKey:@"id"];

请参阅documentation

  

如果你需要处理许多不同类型的成功和失败   请求,您有几种选择:

     
      
  1. 如果您的请求属于同一种广泛类型,但您希望如此   区分它们,可以设置userInfo NSDictionary   每个请求的属性,您可以使用自己可以阅读的自定义数据   在已完成/失败的委托方法中。对于更简单的情况,您可以   改为设置请求的标签属性。这两个属性都是   供您自己使用,不会发送到服务器。

  2.   
  3. 如果您需要完全处理成功和失败   每个请求的方式不同,设置不同的setDidFinishSelector /   每个请求的setDidFailSelector

  4.   

如果要发布网页等数据发布表单,可以使用ASIFormDataRequest子类。通过单独添加的字符串发送POST请求非常容易:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"first_name"];
[request setPostValue:@"Copsey" forKey:@"last_name"];

请参阅documentation