2011-08-20 104 views
1

我有一个数组,其中包含JSON订阅源的URL。我正在使用ASIHTTPRequest来下载并处理它。每个提要都包含多个JSON条目或对象。 request下载数据并只选择一个对象并存储它。ASIHTTPRequest每个请求发送数据

供稿网址如下所示: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。随着tag 3,我想发送身份证。所以我可以用if (request.tag == 3)做一些事情。是否有一些属性可以传递字符串或任何数据以及请求?

+0

问题并不清楚。 –

+0

已编辑的问题。请重新阅读。 – darksky

+0

问题没有意义!!!!! –

回答

3

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

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

请参阅documentation

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

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

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


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

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

请参阅documentation

+0

我不是发布数据..我编辑的问题,请再读一遍..谢谢 – darksky

+0

再次编辑..希望从现在开始。 – darksky

+0

这完全是我需要的。我有很多要求,但可以分为三种类型。那些相同的广泛类型,我想区分它们。谢谢@nekno – darksky