2008年9月22日 星期一

Android 上的 HTTP 服務相關函式 (II)

The introduction of HTTP connection APIs on Android platform - Part II.

這篇 中,我介紹過如何使用 java.net.* package 中的 HttpURLConnection class 來使用 HTTP 這個服務。

在這,我要介紹的是 Android 中,另一個好用的 Apache HttpClient 4.0 模組。

提到 Apache 的 HttpClient,一般大家比較熟悉的都是 Jakarta Commons HttpClient 3.x。不過,今天 Android 整合的是,目前最新的 HttpClient 4.0

要使用這個新的 HttpClient 4.0 模組,你至少要 import 下列這些 packages。

同樣地,就以 GET 的用法來說,最簡單的用法如下:

這個 HttpClient 4.0 模組,在目前 (2008.09) 還沒有正式 release。因此,官網上也沒有詳細的用法說明。不過,倒是有幾個還不錯的 範例程式。像是,如何透過 proxy 使用 http 服務,如何使用 http post。其中,我覺得最有用的是 如何同時啟動 multi-thread 的 http request 服務

除了,java.net.* 中的 HttpURLConnection,以及 org.apache.commons.httpclient.* 中的 HttpClient 這兩個類別外。其實在 Android 中,還隱藏了幾個類似的東西。

第一個是 android.net.http.* 的 AndroidHttpClient(主要使用 Apache 的 HttpClient),另一個是 com.google.android.net.* 的 GoogleHttpClient(主要使用 AndroidHttpClient)。而這個 GoogleHttpClient 更是地圖程式(MapActivity)背後的主要 http request 引擎。另外,可以透過 http 安裝應用程式的 CheckinService,也是用 GoogleHttpClient。

不用找了,你在 SDK 文件上,是找不到這些類別的用法的。這些,目前都還是 undocumented 的。你得翻原始程式才看到的。

5 則留言:

匿名 提到...

如何同時啟動 multi-thread 的 http request 服務...請問可以用在哪?為何好用?謝謝.

samlu 提到...

有了支援 multi-thread http request 後,你就可以同時下載數個檔案,圖片。為何好用,就端看你是有否這方面的需求啦!

匿名 提到...

您好,請問這個方法要如何連接"Https"的服務?
我有一個已設權限的Https服務,網址就像:https://192....
驗證方式是使用".keystore"的keystore檔案.
我有參考您上面的方式做連結,
但是會發生"Not trusted server certificate"的例外,
請問有什麼方法可以解決嗎?
謝謝.

samlu 提到...

關於在 android 中用 https 請參見
http://stackoverflow.com/questions/995514/https-connection-android

使徒 提到...

老師您好
我目前在練習一個圖片瀏覽的程式,用的是GALLERY的標籤
但是感覺在操作上,不如手機內建的圖片瀏覽程式
尤其範例的程式裡,有提到要標示畫面大小
我想把圖片畫面放大到整個手機畫面,就把這行去掉,也的確出現了我要的全畫面
但是當我用觸控滑動圖片時,會出現不順暢的情形,而且圖片的兩邊會出現黑影,甚至當開始操作滑動時,畫面還會變暗,想請教老師,如何做到能和手機內建的一樣滑順?
還有目前手機的解析度已經大幅躍進,模擬器所提供的,似乎已不夠使用,目前已經有480*700的產品了,這好像已經超過模擬器的數據了,這樣一來,程式中所設定的圖片大小,模擬器和手機將會是兩個結果,如何改善這個問題呢?

張貼留言