java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
来源:互联网 发布:mac怎么裁剪音乐 编辑:程序博客网 时间:2024/04/27 16:03
这篇文章主要介绍了Java后台调用HttpURLConnection类模拟浏览器请求实例,该实例可用于接口调用,具有一定的实用价值,需要的朋友可以参考下
一般在项目开发中难免遇到外部接口的调用,本文实例讲述了java后台调用HttpURLConnection类模拟浏览器请求的方法。可用于接口调用。分享给大家供大家参考。具体实现方法如下:
<span style="font-size:14px;">package com.cntv.service.serviceImpl;import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class HttpURLConnectionTest { public static final String GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32"; public static final String POST_URL = "http://112.4.27.9/mall-back/if_user/store_list"; //public static final String POST_URL = "http://www.yodao.com/smartresult-xml/search.s?type=id&q=513721199511287976"; /** * 接口调用 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) { httpURLConectionGET(); // httpURLConnectionPOST(); } } </span>
===================================>下面负责代码在文本中
package com.cntv.service.serviceImpl;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class HttpURLConnectionTest {
public static final String GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
public static final String POST_URL = "http://112.4.27.9/mall-back/if_user/store_list";
// public static final String POST_URL = "http://www.yodao.com/smartresult-xml/search.s?type=id&q=513721199511287976";
/**
* 接口调用 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) {
httpURLConectionGET();
// httpURLConnectionPOST();
}
}
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- Java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- java后台调用HttpURLConnection类模拟浏览器请求实例
- java HttpUrlConnection get和post 模拟请求 调用接口
- JAVA模拟浏览器调用rest api接口
- java后台HttpClient调用http接口实例
- java模拟http请求调用远程接口工具类
- java模拟http请求调用远程接口工具类
- java后台接口调用
- java 后台调用接口
- java调用Http请求 -HttpURLConnection学习
- java调用Http请求 -HttpURLConnection学习
- java调用Http请求 -HttpURLConnection学习
- 使用java调用http请求系列--HttpURLConnection
- JAVA使用httpUrlConnection 调用http接口
- NYOJ 880 还是打印菱形
- RecycleView隐藏部分Item
- Linux df和du不一致问题排查
- SPOJ DQUERY - D-query
- 算法总结(1)--最大储水量相关算法题(栈,优先队列模拟)
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- JSP里ContentType ,charset和pageEncoding的理解与区别
- 【高数】极限运算法则+两个重要极限
- PYTHON解析JSON学习
- RecyclerView 的IndexOutOfBoundsException: Inconsistency detected异常解决办法
- javaScript之鼠标操作(onmouseover)
- 大型网站架构之分布式消息队列
- 一维RMQ
- iOS 10 消息推送(UserNotifications)秘籍总结(一)