zoukankan      html  css  js  c++  java
  • HTTP-java模拟Post请求小栗子

     1 import java.io.BufferedReader;
     2 import java.io.IOException;
     3 import java.io.InputStreamReader;
     4 import java.io.PrintWriter;
     5 import java.net.URL;
     6 import java.net.URLConnection;
     7 
     8 import javax.net.ssl.HostnameVerifier;
     9 import javax.net.ssl.HttpsURLConnection;
    10 import javax.net.ssl.SSLSession;
    11 
    12 import org.apache.log4j.Logger;
    13 
    14 import com.xwtech.parser.PostRequestHtmlParser;
    15 
    16 /**
    17  * Post请求类——得到HTML响应
    18  */
    19 public class PostRequest extends Thread {
    20     private String url = "https://b2b.10086.cn/b2b/main/listVendorNoticeResult.html?noticeBean.noticeType=";
    21     private String params;
    22     private Logger logger;
    23     
    24     public PostRequest(int noticeType, int perPageSize) {
    25         logger = Logger.getLogger(PostRequest.class);
    26         this.url = this.url + noticeType;  //拼接URL请求,不包含参数
    27         params = "page.currentPage=" + currentPage + "&page.perPageSize=" + perPageSize
    28                 + "&noticeBean.sourceCH=&noticeBean.source="
    29                 + "&noticeBean.title=&noticeBean.startDate=&noticeBean.endDate=";
    30     }
    31 
    32     public void run() {
    33         PrintWriter out = null;
    34         BufferedReader in = null;
    35         URLConnection conn = null;
    36         String result = "";
    37         try {
    38             conn = new URL(url).openConnection();
    39             conn.setUseCaches(false);
    40             conn.setRequestProperty("accept", "*/*");
    41             conn.setRequestProperty("connection", "Keep-Alive");
    42             conn.setRequestProperty("user-agent",
    43                     "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36");
    44             conn.setRequestProperty("X-Requested-With", "XMLHttpRequest");
    45             // 发送POST请求必须设置如下两行
    46             conn.setDoOutput(true);
    47             conn.setDoInput(true);
    48 
    49             // 获取URLConnection对象对应的输出流
    50             out = new PrintWriter(conn.getOutputStream());
    51             // 发送请求参数
    52             out.print(params);
    53             // flush输出流的缓冲
    54             out.flush();
    55             in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    56             String line;
    57             while ((line = in.readLine()) != null) {
    58                 result += line;
    59             }
    60         } catch (Exception e) {
    61             logger.error(currentThread().getName() + "线程Post请求出现问题!
    " + e.getMessage() + "
    ");
    62         } finally {// 使用finally块来关闭输出流、输入流
    63             try {
    64                 if (out != null) {
    65                     out.close();
    66                 }
    67                 if (in != null) {
    68                     in.close();
    69                 }
    70             } catch (IOException ex) {
    71                 logger.error(currentThread().getName() + "线程Post请求数据流出现问题!
    " + ex.getMessage() + "
    ");
    72             }
    73         } 
    74         //获取到相应结果result ,可以直接在这里进行下一步处理,或者放入到全局字段中,通过其他方式获取......
    75     }
    76 }

    上面对应的参数以及url等信息可以使用chrome,firefox等浏览器network组件查看。

    相关文章

      java-get请求: http://www.cnblogs.com/husky/p/6377577.html

      java https请求忽略安全证书信任: http://www.cnblogs.com/husky/p/6378290.html

  • 相关阅读:
    spring cloud中代理服务器zuul的使用
    springcloud断路器Dashboard监控仪表盘的使用
    Java中 final和static解析
    使用redis和thread告警并避免重复告警
    Windows 下redis的安装和使用
    服务端监控工具Nmon使用方法
    linux性能监控工具nmon生成HTML报告-EasyNmon
    接口测试用例设计
    RESTful API浅谈
    接口测试与总结
  • 原文地址:https://www.cnblogs.com/husky/p/6377553.html
Copyright © 2011-2022 走看看