<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      采納HTTPClient通過代理連接服務器

      [摘要]使用代理一般的辦法是用HTTPConnection的靜態方法setProxyServer實現:HTTPConnection.setProxyServer("my.proxy.dom&quo...
      使用代理一般的辦法是用HTTPConnection的靜態方法setProxyServer實現:

      HTTPConnection.setProxyServer("my.proxy.dom", 8008);

      調用該方法以后產生的HTTPConnection對象都會通過該代理建立服務器連接。

      特定某一個連接使用代理:

      setCurrentProxy()

      你也可以設置連接某些服務器不要采用代理:

      HTTPConnection.dontProxyFor("localhost");

      假如代理服務器要求用戶名密碼認證:

      AuthorizationInfo.addDigestAuthorization(host, proxyPort, "", name, pass);

      其中第三個參數是認證域,一般代理服務器可以設為空字符串,除非你知道服務器的確切域。

      還有另外一個方法就是使用DefaultAuthHandler:

      DefaultAuthHandler.setAuthorizationPrompter(new MyAuthPrompter(pa_name, pa_pass));

      MyAuthPrompter是實現了AuthorizationPrompter接口的自定義類:

      class MyAuthPrompter implements AuthorizationPrompter

      {

          private String  pa_name, pa_pass;

          private boolean been_here = false;

          MyAuthPrompter(String pa_name, String pa_pass) {

             this.pa_name = pa_name;

             this.pa_pass = pa_pass;

          }

          public NVPair getUsernamePassword(AuthorizationInfo challenge, boolean forProxy) {

             if (forProxy  &&  pa_name != null){

                 if (been_here) {

                    System.out.println("Proxy authorization failed");

                        return null;

                 }

                 been_here = true;

                 return new NVPair(pa_name, pa_pass);

             }

             if (been_here)    {

                 System.out.println("Proxy authorization succeeded");

             }

             // print out all challenge info

             if (forProxy)

                 System.out.println("The proxy requires authorization");

             else

                 System.out.println("The server requires authorization for this resource");

             return null;

          }

      }

      關于頁面認證

      一個頁面是否需要認證,以及要求認證的信息可以通過HTTPClient/doc/GetAuthInfo.java來獲。

      java GetAuthInfo http://some.host.dom/the/file.html

      程序會輸出認證信息包括認證域。



      附注:

      下載要求用戶認證的頁面時,HTTPClient會彈出用戶名密碼以及作用域輸入框。假如需要取消輸入彈出對話框的話,可以調用HTTPConnection的setAllowUserInteraction(false)方法。


      日韩精品一区二区三区高清