java模拟浏览器请求

  1. 利用httpclient4.× 写一个http的客户端
    1. public void post(List<NameValuePair> payload) throws  Exception{     
    2.         HttpPost post = new HttpPost(uri);     
    3.         HttpEntity result = null;     
    4.         try {     
    5.             UrlEncodedFormEntity entity = new UrlEncodedFormEntity(payload,     
    6.                     charset);     
    7.             post.setEntity(entity);     
    8.             if (LOG.isDebugEnabled()) {     
    9.                 LOG.debug("sending:" + payload);     
    10.             }     
    11.      
    12.             HttpResponse response = _httpClient.execute(post);     
    13.             StatusLine statusLine = response.getStatusLine();     
    14.             if (statusLine.getStatusCode() != HttpStatus.SC_OK) {     
    15.                 result = response.getEntity();     
    16.                 StringBuilder msg = new StringBuilder();     
    17.                 msg.append("http response with code "     
    18.                         + statusLine.getStatusCode());     
    19.                 msg.append("\n");     
    20.                 msg.append("post request: " + post.getURI());     
    21.                 msg.append("\n");     
    22.                 msg.append(statusLine.getReasonPhrase());     
    23.                 if (result != null) {     
    24.                     msg.append("\n\n");     
    25.                     msg.append(EntityUtils.toString(result, "UTF-8"));     
    26.                     msg.append("\n\n");     
    27.                 }     
    28.                 throw new UmcException(msg.toString());     
    29.             }     
    30.             if (response.getEntity() != null) {     
    31.                 BufferedReader reader = new BufferedReader(     
    32.                         new InputStreamReader(     
    33.                                 response.getEntity().getContent(), "UTF-8"));     
    34.                 String line = null;     
    35.                 while ((line = reader.readLine()) != null) {     
    36.                     if (line.indexOf("success") < 0)     
    37.                         System.out.println(line);     
    38.                 }     
    39.             }     
    40.         } finally {     
    41.             if (result != null)     
    42.                 try {     
    43.                     EntityUtils.consume(result);     
    44.                 } catch (IOException e) {     
    45.                 }     
    46.             post.abort();     
    47.         }     
    48.     }    
  2. 采用JDK的HttpConnection构造http客户端
    1. 发送     
    2.     HttpURLConnection conn = null;     
    3.     try {     
    4.         URL url = new URL(Your_URL);     
    5.         conn = (HttpURLConnection) url.openConnection();     
    6.         conn.setRequestMethod("POST");     
    7.         conn.setRequestProperty("Content-Type",     
    8.                 "application/x-www-form-urlencoded");     
    9.         conn.setUseCaches(false);     
    10.         conn.setDoOutput(true);     
    11.         OutputStreamWriter osw = new OutputStreamWriter(     
    12.                 conn.getOutputStream());     
    13.         StringBuffer sb = new StringBuffer();     
    14.         addPair(sb, "p1""p1value");     
    15.         addPair(sb, "p2""p2value");     
    16.         osw.write(sb.substring(0, sb.length() - 1));     
    17.         osw.flush();     
    18.         BufferedReader reader = new BufferedReader(     
    19.                 new InputStreamReader(conn.getInputStream()));     
    20.         String line = null;     
    21.         sb = new StringBuffer();     
    22.         while ((line = reader.readLine()) != null) {     
    23.             sb.append(line);     
    24.         }     
    25.         line = sb.toString();     
    26.         // 处理返回的字符串line     
    27.         return;     
    28.              
    29.     } catch (IOException e) {     
    30.         // handle e     
    31.     } finally {     
    32.         if (conn != null)     
    33.             conn.disconnect();     
    34.     }///发送结束
    1. public static void addPair(StringBuffer sb, String name, String value) {     
    2.     if (value == null) {     
    3.         return;     
    4.     }     
    5.     sb.append(name);     
    6.     sb.append("=");     
    7.     sb.append(value);     
    8.     sb.append("&");     
    9. }    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值