posts - 23,comments - 66,trackbacks - 0
          使用HTTP Client構(gòu)建Web客戶端
          ?

          在你需要Web感知應(yīng)用程序而Java API又不夠用的時(shí)候,你可能需要看一下Jakarta Common的HTTP Client。使用HTTP Client很簡單:首先創(chuàng)建一個(gè)HttpClient的實(shí)例,然后創(chuàng)建你需要使用的方法類型的一個(gè)實(shí)例,最后使用HttpClient的實(shí)例執(zhí)行方法。


          下面是設(shè)計(jì)Web頁面并將其內(nèi)容寫到標(biāo)準(zhǔn)輸出:

          ??? HttpClient client = new HttpClient();
          ??? GetMethod get = new GetMethod("

          ??? client.executeMethod(get);
          ??? System.out.println(get.getResponseBodyAsString());

          現(xiàn)在假設(shè)你需要使用基本的驗(yàn)證機(jī)制來訪問一個(gè)頁面。在這種情況下,你需要使用HTTP Client類UsernamePasswordCredentials。下面是實(shí)現(xiàn)這一功能的代碼:

          ??? UsernamePasswordCredentials upc =
          ??????????? new UsernamePasswordCredentials("foo", "bar");

          ??? client.getState().setCredentials(null, null, upc);

          ??? get.setDoAuthentication(true);

          在下面的代碼中,我們?yōu)間et方法添加一個(gè)超時(shí)規(guī)范以防頁面的裝載時(shí)間過長。

          client.setConnectionTimeout(60000);

          從示例代碼中我們已經(jīng)看到了,使用HTTP Client的屬性相當(dāng)簡單。如果你的應(yīng)用程序需要HTTP訪問,那么就不妨試一下HTTP Client。它比Java API中的Web感知類具有更多的特性,而且它的用法簡單。自己看一下吧,看它是否能滿足你的要求。

          import java.io.IOException;
          import org.apache.commons.httpclient.HttpClient;
          import org.apache.commons.httpclient.UsernamePasswordCredentials;
          import org.apache.commons.httpclient.methods.GetMethod;

          public class HttpClientTip {
          ??? public static void main(String args[]) {
          ??????? try {
          ??????????? HttpClient client = new HttpClient();
          ??????????? GetMethod get = new GetMethod("

          ??????????? UsernamePasswordCredentials upc =
          ??????????????????? new UsernamePasswordCredentials("foo", "bar");

          ??????????? client.getState().setCredentials(null, null, upc);

          ??????????? get.setDoAuthentication(true);

          ??????????? client.setConnectionTimeout(60000);

          ??????????? client.executeMethod(get);
          ??????????? System.out.println(get.getResponseBodyAsString());
          ??????? }
          ??????? catch (IOException e) {
          ??????????? e.printStackTrace();
          ??????? }
          ??? }

          ?

          posted on 2006-03-21 23:20 rd2pm 閱讀(1057) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          主站蜘蛛池模板: 泸溪县| 南京市| 云林县| 赣榆县| 宜兰县| 衡阳市| 闻喜县| 安阳县| 原阳县| 万荣县| 苍南县| 辽阳市| 天峻县| 廉江市| 乐安县| 冀州市| 镇雄县| 龙山县| 富蕴县| 宁德市| 肃南| 平邑县| 丘北县| 白城市| 济源市| 平安县| 太湖县| 保靖县| 屏东县| 文化| 肥西县| 九江市| 娄底市| 新龙县| 江孜县| 临桂县| 荥阳市| 龙游县| 牡丹江市| 旌德县| 阿克|