2013-07-31 27 views
1

調用REST Web服務是很簡單的 - 我使用本地NSURLConnection的類及其委託方法:傳遞參數從Objective-C的REST API調用

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"webServiceURL"]]; 

    [request setHTTPMethod:@"GET"]; 

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

但是我怎麼傳遞對象參數來調用?例如,如果Web服務期望一個對象UserInfo { name:string, age:int}

現在,這個電話只有兩個參數 - 我還想做的可能情況下,我可能要通過更多的要求。

什麼是正確的方法來做到這一點?我聽說過RestKit,並計劃儘快試用它,但沒有第三方庫有沒有什麼好方法?

+0

參數中的URL或請求主體? – Wain

+0

在請求正文中。在URL中可以,但是如果我必須傳遞10個參數,則URL長度會變得太長。我想'[要求的setValue:@ 「USER1」 forHTTPHeaderField:@ 「用戶名」];'但REST的Web API不承認傳遞的參數。 –

回答

2

通常做一個GET時,則可以將參數添加到URL。爲此,只需將查詢字符串添加到用於生成URL的字符串的末尾。

如果你正在做一個POST,那麼你會在參數通常添加到請求主體。這是通過參數轉換爲NSData並呼籲requestsetHTTPBody:完成。

+0

沒想到那麼簡單。謝謝! GET請求在查詢字符串參數中正常工作。 –