2011-08-20 68 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