我有一个包含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)
中使用它做些什么。是否有一些属性可以传递字符串或任何数据以及请求?
答案 0 :(得分:3)
您可以在userInfo
属性中传递自己的数据字典,与tag
属性一样,可以在收到响应后在请求中回读。
NSString* jsonId = @"1234";
request.userInfo = [NSDictionary dictionaryWithObject:jsonId forKey:@"id"];
请参阅documentation。
如果你需要处理许多不同类型的成功和失败 请求,您有几种选择:
如果您的请求属于同一种广泛类型,但您希望如此 区分它们,可以设置userInfo NSDictionary 每个请求的属性,您可以使用自己可以阅读的自定义数据 在已完成/失败的委托方法中。对于更简单的情况,您可以 改为设置请求的标签属性。这两个属性都是 供您自己使用,不会发送到服务器。
- 醇>
如果您需要完全处理成功和失败 每个请求的方式不同,设置不同的setDidFinishSelector / 每个请求的setDidFailSelector
如果要发布网页等数据发布表单,可以使用ASIFormDataRequest子类。通过单独添加的字符串发送POST请求非常容易:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"first_name"];
[request setPostValue:@"Copsey" forKey:@"last_name"];
请参阅documentation。