Java如何调用HttpURLConnection类模拟浏览器访问呢?()

  本篇文章为你整理了Java如何调用HttpURLConnection类模拟浏览器访问呢?()的详细内容,包含有 Java如何调用HttpURLConnection类模拟浏览器访问呢?,希望能帮助你了解 Java如何调用HttpURLConnection类模拟浏览器访问呢?。

  public class HttpURLConnectionTest {

   public static final String GET_URL = "http://java265.com";

   public static final String POST_URL = "http://java265.com";

   * 接口调用 GET

   public static void httpURLConectionGET() {

   try {

   URL url = new URL(GET_URL); // 把字符串转换为URL请求地址

   HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 打开连接

   connection.connect();// 连接会话

   // 获取输入流

   BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));

   String line;

   StringBuilder sb = new StringBuilder();

   while ((line = br.readLine()) != null) {// 循环读取流

   sb.append(line);

   br.close();// 关闭流

   connection.disconnect();// 断开连接

   System.out.println(sb.toString());

   } catch (Exception e) {

   e.printStackTrace();

   System.out.println("失败!");

   * 接口调用 POST

   public static void httpURLConnectionPOST () {

   try {

   URL url = new URL(POST_URL);

   // 将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接 (标识一个url所引用的远程对象连接)

   HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此时cnnection只是为一个连接对象,待连接中

   // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)

   connection.setDoOutput(true);

   // 设置连接输入流为true

   connection.setDoInput(true);

   // 设置请求方式为post

   connection.setRequestMethod("POST");

   // post请求缓存设为false

   connection.setUseCaches(false);

   // 设置该HttpURLConnection实例是否自动执行重定向

   connection.setInstanceFollowRedirects(true);

   // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)

   // application/x-javascript text/xml- xml数据 application/x-javascript- json对象 application/x-www-form-urlencoded- 表单数据

   connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

   // 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)

   connection.connect();

   // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)

   DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());

   String parm = "storeId=" + URLEncoder.encode("32", "utf-8"); //URLEncoder.encode()方法 为字符串进行编码

   // 将参数输出到连接

   dataout.writeBytes(parm);

   // 输出完成后刷新并关闭流

   dataout.flush();

   dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)

   System.out.println(connection.getResponseCode());

   // 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)

   BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream()));

   String line;

   StringBuilder sb = new StringBuilder(); // 用来存储响应数据

   // 循环读取流,若不到结尾处

   while ((line = bf.readLine()) != null) {

   sb.append(bf.readLine());

   bf.close(); // 重要且易忽略步骤 (关闭流,切记!)

   connection.disconnect(); // 销毁连接

   System.out.println(sb.toString());

   } catch (Exception e) {

   e.printStackTrace();

   public static void main(String[] args) {

   httpURLConnectionPOST();

  }

 

 

  

  以上就是Java如何调用HttpURLConnection类模拟浏览器访问呢?()的详细内容,想要了解更多 Java如何调用HttpURLConnection类模拟浏览器访问呢?的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: