我正在編寫一個非常簡單的Web服務客戶端應用程序。 我有以下問題: 1.是否有一種標準的常用方式來編寫Web服務消耗部分,以便它不會干擾主GUI線程?考慮到網絡請求需要很短的時間才能完成(但從來不知道),使用主線程是否很常見? 任何指向教程的鏈接? 2.我看到的所有示例都通過GET調用Web服務。我需要將數據發佈到Web服務。 任何已知的使用POST的示例/教程?iPhone - Web服務客戶端應用程序
0
A
回答
2
如果您使用的是iPhone的內置Web請求API NSURLConnection,您可以在主線程上運行請求,但是您可以異步地運行該請求,並在返回數據時使用回調代理。這使應用程序響應用戶事件。如果解析或處理返回的數據需要太長的時間才能在主線程上運行,那麼您應該在主線程上運行NSURLConnection,然後遞增地或在下載完成後將響應數據交給輔助線程進行純計算處理。
可以在非主線程上啓動NSURLConnections,但需要在非主線程上創建runloop,並且Apple庫中存在隨機線程安全性錯誤的報告。如果您確實需要在非主線程上運行請求,則可以使用第三方庫ASIHTTPRequest,但除非是非常特殊的情況,否則您不需要這樣做。
生成一個POST請求是直接與NSURLConnection的:
NSString * requestBody = @"format up your body here, which is often form-urlencoded";
NSURL * nsurl = [NSURL URLWithString: @"http://example.com/post_request_receiver"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:nsurl];
// set appropriate content type here, usually application/x-www-form-urlencoded
[theRequest addValue: @"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: [NSString stringWithFormat:@"%d", [requestBody length]] forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [requestBody dataUsingEncoding:NSUTF8StringEncoding]];
conn = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES];
+0
謝謝。非常好的詳細答案 – jkally 2010-07-01 11:18:19
相關問題
- 1. Web服務客戶端應用程序
- 2. 在iPhone上運行客戶端和服務器的客戶端 - 服務器Web應用程序 - 這可能嗎?
- 3. 服務器端VS客戶端MVC的Web應用程序
- 4. 從Git客戶端應用程序中分離Web服務器?
- 5. iphone應用程序教程客戶端/服務器
- 6. 服務器客戶端應用程序
- 7. 客戶端/服務器應用程序
- 8. 客戶端 - 服務器應用程序
- 9. weblogic上的Web服務客戶端應用程序調用Web服務
- 10. iPhone服務器客戶端應用程序
- 11. 客戶端服務器應用程序爲iPhone
- 12. Ruby on rails服務器應用程序+ IOS iPhone客戶端?
- 13. 客戶端服務器iPhone應用程序開發
- 14. iPhone客戶端服務器應用程序
- 15. .NET客戶端web服務編程
- 16. 完全基於Web的iPhone客戶端 - 服務器應用程序?
- 17. 如何爲WSDL服務生成Web應用程序客戶端?
- 18. 桌面客戶端Web服務器,聊天應用程序
- 19. Axis2 Web服務客戶端應用程序
- 20. 獲取客戶端應用程序名稱到Web服務
- 21. Web應用程序的客戶端 - 服務器通信的styleguide
- 22. Web應用程序客戶端DNS服務器檢測
- 23. C#服務器客戶端應用程序(一個服務器多客戶端)
- 24. 客戶端(Android應用程序) - 服務器(Java應用程序)
- 25. 服務器客戶端iphone
- 26. Java Web服務客戶端
- 27. Soap Web服務客戶端
- 28. Web服務客戶端Java
- 29. Python web服務客戶端
- 30. Java Web服務客戶端:
你讀過任何文檔? http://developer.apple.com/iphone/library/navigation/index.html 嘗試使用谷歌搜索「iPhone XML解析教程」 – falconcreek 2010-06-30 17:17:35