<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
    請問你的代碼如何運行啊,多謝了!  回復  更多評論
      

    主站蜘蛛池模板: 亚洲一区二区三区免费观看| 亚洲午夜久久久影院伊人 | 妞干网在线免费观看| 亚洲高清在线播放| 久久一本岛在免费线观看2020| 77777亚洲午夜久久多人| 午夜不卡AV免费| 亚洲美女高清一区二区三区 | 亚洲sss综合天堂久久久| 成人免费观看一区二区| 亚洲中文字幕无码av在线| 成人AV免费网址在线观看| 亚洲AV成人影视在线观看| 无码一区二区三区免费视频| 亚洲欧美日本韩国| 全黄性性激高免费视频| 一级毛片在播放免费| 亚洲乱码一区二区三区在线观看| 在线观看免费视频一区| 亚洲色四在线视频观看| 免费观看黄网站在线播放| 日韩国产欧美亚洲v片| 免费成人午夜视频| a级毛片毛片免费观看久潮喷| 久久91亚洲精品中文字幕| 69免费视频大片| 亚洲国产成人无码AV在线| 免费va在线观看| 成人电影在线免费观看| 亚洲综合亚洲国产尤物| 女人与禽交视频免费看 | 久久免费动漫品精老司机 | 成人男女网18免费视频| 特级毛片全部免费播放a一级| 亚洲精品无码午夜福利中文字幕| 免费看又黄又无码的网站| 亚洲中文字幕精品久久| 国产亚洲人成A在线V网站| 国产免费看JIZZ视频| 新最免费影视大全在线播放| 亚洲高清在线观看|