<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    //研究了一下午,終于發(fā)現(xiàn)一個(gè)問題,寫這個(gè)代碼不是很難的,難的是找一個(gè)能代理的IP地址,實(shí)際網(wǎng)上的好多代碼都可以用滴,只是代理IP和Port有問題而已,廢話少說,直接上代碼:
    1、先說Get的代理(首先提供一個(gè)Servlet的Get的http服務(wù))

    package com.abin.lee.servlet;

    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.OutputStreamWriter;

    /**
     * Created with IntelliJ IDEA.
     * User: abin
     * Date: 13-4-18
     * Time: 上午8:39
     * To change this template use File | Settings | File Templates.
     */
    public class HttpClientGetProxyServlet extends HttpServlet {
        public void init(ServletConfig config) throws ServletException {
            super.init(config);
        }
        public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException {
            System.out.println("receive httpGet request");
            String userName=request.getParameter("userName");
            String passWord=request.getParameter("passWord");
            String localIp=request.getLocalAddr();
            String localName=request.getLocalName();
            int localPort=request.getLocalPort();
            int ServerPort=request.getServerPort();
            String leeHeader=request.getHeader("lee");
            System.out.println("userName="+userName+",passWord="+passWord+",localIp="+localIp+",localName="+localName+",localPort="+localPort);
            System.out.println("ServerPort="+ServerPort+",leeHeader="+leeHeader);
            String remoteIp=request.getRemoteAddr();
            String remoteHost=request.getRemoteHost();
            int remotePort=request.getRemotePort();
            System.out.println("remoteIp="+remoteIp+",remoteHost="+remoteHost+",remotePort="+remotePort);

            ServletOutputStream out=response.getOutputStream();
            BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
            writer.write("success");
            writer.flush();
            writer.close();

        }
    }




    HttpGet代理測(cè)試類:

    package com.abin.lee.ssh.senior.proxy.httpclient;
    import org.apache.http.Header;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpHost;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.conn.params.ConnRoutePNames;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;

    public class HttpClientGetProxyServletTest {
     public static final String HttpGetProxyUrl="http://localhost:8100/MyThread/HttpClientGetProxyServlet";
     @Test
        public  void testHttpClientPostProxyServlet()throws Exception {
            HttpHost proxy = new HttpHost("10.10.10.10", 1443, "http");
            DefaultHttpClient httpclient = new DefaultHttpClient();
            try {
                httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);

                HttpHost target = new HttpHost("localhost", 8100, "http");
                HttpGet request = new HttpGet(HttpGetProxyUrl+"?"+"userName=abin&passWord=varyall");
                request.setHeader("lee", "lee");
                System.out.println("executing request to " + target + " via " + proxy);
                HttpResponse rsp = httpclient.execute(target, request);
                HttpEntity entity = rsp.getEntity();

                System.out.println("----------------------------------------");
                System.out.println(rsp.getStatusLine());
                Header[] headers = rsp.getAllHeaders();
                for (int i = 0; i<headers.length; i++) {
                    System.out.println(headers[i]);
                }
                System.out.println("----------------------------------------");

                if (entity != null) {
                    System.out.println(EntityUtils.toString(entity));
                }

            } finally {
                // When HttpClient instance is no longer needed,
                // shut down the connection manager to ensure
                // immediate deallocation of all system resources
                httpclient.getConnectionManager().shutdown();
            }
        }
    }







    //正常測(cè)試代碼,非代理

    package com.abin.lee.ssh.senior.proxy.httpclient;

    import java.io.BufferedReader;
    import java.io.InputStreamReader;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.junit.Test;

    public class HttpClientGetServletTest {
     public static final String HttpGetUrl = "http://localhost:8100/MyThread/HttpClientGetProxyServlet";

     @Test
     public void HttpClientGetServlet() {
      HttpClient httpClient = new DefaultHttpClient();
      StringEntity reqEntity = null;
      HttpGet httpGet = null;
      try {
       HttpGet request = new HttpGet(HttpGetUrl+"?"+"userName=abin&passWord=varyall");
                request.setHeader("lee", "lee");
       // 目標(biāo)地址
       System.out.println("請(qǐng)求: " + httpGet.getRequestLine());
       // 執(zhí)行
       HttpResponse response = httpClient.execute(httpGet);
       HttpEntity entity = response.getEntity();
       System.out.println("----------------------------------------");
       System.out.println(response.getStatusLine());
       if (entity != null) {
        System.out.println("Response content length: "
          + entity.getContentLength());
       }
       // 顯示結(jié)果
       BufferedReader reader = new BufferedReader(new InputStreamReader(
         entity.getContent(), "UTF-8"));
       String line = null;
       while ((line = reader.readLine()) != null) {
        System.out.println(line);
       }
      } catch (Exception e) {
       e.printStackTrace();
      } finally {
       if (!httpGet.isAborted()) {
        httpGet.abort();
       }
       httpClient.getConnectionManager().shutdown();
      }
     }
    }




    //servlet配置

       <servlet>
                 <servlet-name>HttpClientGetProxyServlet</servlet-name>
                 <servlet-class>com.abin.lee.servlet.HttpClientGetProxyServlet</servlet-class>
             </servlet>
             <servlet-mapping>
                 <servlet-name>HttpClientGetProxyServlet</servlet-name>
                 <url-pattern>/HttpClientGetProxyServlet</url-pattern>
             </servlet-mapping>






    我這里的IP和端口不一定能用喲,自己找能用的!!代碼是100%沒問題的,經(jīng)過生產(chǎn)環(huán)境測(cè)試的喲!!!
    posted on 2013-04-18 17:50 abin 閱讀(1433) 評(píng)論(0)  編輯  收藏 所屬分類: httpClient
    主站蜘蛛池模板: 亚洲色爱图小说专区| 成年丰满熟妇午夜免费视频| 国产成人精品免费大全| 曰批全过程免费视频观看免费软件 | 亚洲va中文字幕| 亚洲精品乱码久久久久久V | 水蜜桃亚洲一二三四在线| 久久91亚洲人成电影网站| 亚洲AV无码成人精品区蜜桃| 国产日韩亚洲大尺度高清| 亚洲av永久无码精品古装片| 亚洲日韩区在线电影| 亚洲成综合人影院在院播放| 亚洲AV无码专区在线亚| 亚洲熟妇无码一区二区三区| 亚洲日韩久久综合中文字幕| 亚洲aⅴ无码专区在线观看| 免费无码午夜福利片69| 中文字幕免费人成乱码中国| 精品国产麻豆免费人成网站| 91av在线免费视频| 最新欧洲大片免费在线 | 性无码免费一区二区三区在线| 91老湿机福利免费体验| 波多野结衣中文字幕免费视频 | 国产精品免费久久久久久久久| 本免费AV无码专区一区| 99在线在线视频免费视频观看| 亚洲成人免费电影| 日韩免费观看一级毛片看看| 亚洲日韩在线中文字幕第一页| 精品久久久久久亚洲| 亚洲妓女综合网99| 婷婷国产偷v国产偷v亚洲| 永久免费观看黄网站| 久久精品一区二区免费看| 成人午夜免费福利视频| 免费国产成人午夜电影| 情人伊人久久综合亚洲| 亚洲娇小性色xxxx| 一级特黄色毛片免费看|