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

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

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

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    //研究了一下午,終于發現一個問題,寫這個代碼不是很難的,難的是找一個能代理的IP地址,實際網上的好多代碼都可以用滴,只是代理IP和Port有問題而已,廢話少說,直接上代碼:
    1、先說Post的代理
    //HttpClientPostProxyServlet

    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 HttpClientPostProxyServlet extends HttpServlet {
        public void init(ServletConfig config) throws ServletException {
            super.init(config);
        }
        public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException {
            System.out.println("receive httpPost 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();
            String remoteUser=request.getRemoteUser();
            System.out.println("remoteIp="+remoteIp+",remoteHost="+remoteHost+",remotePort="+remotePort+",remoteUser="+remoteUser);

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

        }
    }




    Post代理測試類:
    //HttpClientPostProxyServletTest.java

    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.HttpPost;
    import org.apache.http.conn.params.ConnRoutePNames;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;

    public class HttpClientPostProxyServletTest {
     public static final String HttpPostProxyUrl="http://localhost:8100/MyThread/HttpClientPostProxyServlet";
     @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");
                HttpPost request = new HttpPost(HttpPostProxyUrl);
          StringEntity reqEntity = new StringEntity("userName=abin&passWord=varyall");  
          reqEntity.setContentType("application/x-www-form-urlencoded");  
          request.setEntity(reqEntity);  
          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();
            }
        }
    }




    //正常測試代碼,非代理

    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.HttpPost;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.junit.Test;

    public class HttpClientPostServletTest {
     public static final String HttpPostUrl="http://localhost:8100/MyThread/HttpClientPostProxyServlet";
     @Test
     public void testHttpClientPostServlet(){
       HttpClient httpClient = new DefaultHttpClient();
       HttpPost httpPost = new HttpPost(HttpPostUrl);
      try {
          // 目標地址  
           System.out.println("請求: " + httpPost.getRequestLine());  
          // 構造最簡單的字符串數據  
           StringEntity reqEntity = new StringEntity("userName=abin&passWord=varyall");  
          // 設置類型  
           reqEntity.setContentType("application/x-www-form-urlencoded");  
          // 設置請求的數據  
           httpPost.setEntity(reqEntity);  
           httpPost.setHeader("lee", "lee");
          // 執行  
           HttpResponse response = httpClient.execute(httpPost);  
           HttpEntity entity = response.getEntity();  
           System.out.println("----------------------------------------");  
           System.out.println(response.getStatusLine());  
          if (entity != null) {  
             System.out.println("Response content length: " + entity.getContentLength());  
           }  
          // 顯示結果  
           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(!httpPost.isAborted()){
        httpPost.abort();
       }
       httpClient.getConnectionManager().shutdown();
      }
     }
    }



    //servlet配置
      <servlet>
                 <servlet-name>HttpClientPostProxyServlet</servlet-name>
                 <servlet-class>com.abin.lee.servlet.HttpClientPostProxyServlet</servlet-class>
             </servlet>
             <servlet-mapping>
                 <servlet-name>HttpClientPostProxyServlet</servlet-name>
                 <url-pattern>/HttpClientPostProxyServlet</url-pattern>
             </servlet-mapping>




    我這里的IP和端口不一定能用喲,自己找能用的??!代碼是100%沒問題的,經過生產環境測試的喲!??!

    posted on 2013-04-18 17:45 abin 閱讀(1166) 評論(1)  編輯  收藏 所屬分類: httpClient

    Feedback

    # re: HttpClient Post代理訪問 2013-08-14 22:50 foxbase
    請問你的代碼如何運行啊,多謝了!  回復  更多評論
      

    主站蜘蛛池模板: 最近免费中文字幕mv电影| 一区二区在线免费观看| 日本一道本高清免费| 国产成人亚洲综合网站不卡| 在线看片免费人成视久网| 亚洲精品线在线观看| 青青草无码免费一二三区| 久久亚洲AV无码精品色午夜| 免费播放一区二区三区| 91亚洲国产成人久久精品网站| 91精品免费高清在线| 亚洲日韩中文字幕天堂不卡| 无码精品A∨在线观看免费| 亚洲一区二区三区高清视频| 全免费一级毛片在线播放| 视频一区二区三区免费观看| 中文字幕第一页亚洲| 久9热免费精品视频在线观看| 亚洲精品国产成人99久久| 国产大片线上免费观看| 亚洲成在人线aⅴ免费毛片| 亚洲成人影院在线观看| 99在线视频免费观看| 亚洲精品免费在线| 国产精品无码素人福利免费| 在线播放国产不卡免费视频| 亚洲av中文无码乱人伦在线咪咕| 久久久久av无码免费网| 蜜芽亚洲av无码一区二区三区| 国产亚洲老熟女视频| 国产曰批免费视频播放免费s | 国产亚洲成AV人片在线观黄桃| 亚洲免费在线视频| 亚洲youwu永久无码精品| 国产亚洲av片在线观看播放| 免费AA片少妇人AA片直播| 免费看黄网站在线看| 亚洲四虎永久在线播放| 国产猛烈高潮尖叫视频免费| 黄网站免费在线观看| 亚洲乱码无人区卡1卡2卡3|