JAVA发送HTTP请求,并接受返回内容
来源:互联网 发布:算法导论这本书怎么样 编辑:程序博客网 时间:2024/05/18 01:30
/** * Copyright 2017 * 注意:请勿修改 * All right reserved. */package test;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.Map;import java.util.Map.Entry;/** * @Name: HttpRequest.java * @Description: Java后台访问http,并获得响应数据。 * @Author: PeiFeng * @Create Date: 2017-8-9 */public final class HttpRequest {// ;charset=utf-8 必须要,不然会出现乱码/** * 表单数据 <br/> * <br/> * 在发送前编码所有字符(默认)<br/> * <br/> * application/x-www-form-urlencoded;charset=utf-8 */public static String CONTENT_TYPE_FORM_URLENCODED = "application/x-www-form-urlencoded;charset=utf-8";/** * 表单数据 <br/> * <br/> * 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值 <br/> * <br/> * multipart/form-data;charset=utf-8 */public static String CONTENT_TYPE_FORM_DATA = "multipart/form-data;charset=utf-8";/** text/plain;charset=utf-8 */public static String CONTENT_TYPE_PLAIN = "text/plain;charset=utf-8";/** application/json;charset=utf-8 */public static String CONTENT_TYPE_JSON = "application/json;charset=utf-8";/** * @Name: post。 * @Description: 发送post请求,并返回响应数据。 * @Parameters: URL,要访问的url。 * @Parameters: parms,访问参数,Map形式。 * @Return: String,响应数据。 * @Author: PeiFeng * @Version: V1.00 * @Create Date: 2017-8-8 */public static String post(String URL, Map<String, String> params) {StringBuilder parm = new StringBuilder();if (params != null && !params.isEmpty()) {for (Entry<String, String> entry : params.entrySet()) {parm.append(entry.getKey()).append("=").append(entry.getValue()).append("&");}}return post(URL, parm.toString());}/** * @Name: post。 * @Description: 发送post请求,并返回响应数据。 * @Parameters: URL,要访问的url。 * @Parameters: parm,访问参数。 * @Return: String,响应数据。 * @Author: PeiFeng * @Version: V1.00 * @Create Date: 2017-8-8 */public static String post(String URL, String parm) {HttpURLConnection conn = null;// 数据输出流,输出参数信息DataOutputStream dataOut = null;// 数据输入流,处理服务器响应数据BufferedReader dataIn = null;try {URL url = new URL(URL);// 将url以open方法返回的urlConnection连接强转为HttpURLConnection连接(标识一个url所引用的远程对象连接)// 此时cnnection只是为一个连接对象,待连接中conn = (HttpURLConnection) url.openConnection();// 设置连接输出流为true,默认false (post请求是以流的方式隐式的传递参数)conn.setDoOutput(true);// 设置连接输入流为trueconn.setDoInput(true);// 设置请求方式为postconn.setRequestMethod("POST");// post请求缓存设为falseconn.setUseCaches(false);// 设置该HttpURLConnection实例是否自动执行重定向conn.setInstanceFollowRedirects(true);// 设置内容的类型,设置为经过urlEncoded编码过的from参数conn.setRequestProperty("Content-Type", HttpRequest.CONTENT_TYPE_FORM_URLENCODED);conn.setRequestProperty("accept", "*/*");// conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible;// MSIE 6.0; Windows NT 5.1;SV1)");// 建立连接// (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)conn.connect();// 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)dataOut = new DataOutputStream(conn.getOutputStream());// 将参数输出到连接dataOut.writeBytes(parm != null ? parm : "");// 输出完成后刷新并关闭流dataOut.flush();// outConnInfo(conn, url);// 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)dataIn = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line;// 用来存储响应数据StringBuilder sb = new StringBuilder();// 循环读取流while ((line = dataIn.readLine()) != null) {sb.append(line).append(System.getProperty("line.separator"));}return sb.toString();} catch (Exception e) {e.printStackTrace();} finally {try {// 重要且易忽略步骤 (关闭流,切记!)if (dataOut != null) {dataOut.close();}if (dataIn != null) {dataIn.close();}// 销毁连接if (conn != null) {conn.disconnect();}} catch (IOException e) {e.printStackTrace();}}return null;}/** * @Name: get。 * @Description: 发送get请求,并返回响应数据。 * @Parameters: URL,要访问的url。 * @Return: String,响应数据。 * @Author: PeiFeng * @Version: V1.00 * @Create Date: 2017-8-8 */public static String get(String URL) {HttpURLConnection conn = null;BufferedReader dataIn = null;try {// 把字符串转换为URL请求地址URL url = new URL(URL);// 打开连接conn = (HttpURLConnection) url.openConnection();// 连接会话conn.connect();// 获取输入流dataIn = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line;StringBuilder sb = new StringBuilder();while ((line = dataIn.readLine()) != null) {// 循环读取流sb.append(line);}return sb.toString();} catch (Exception e) {e.printStackTrace();} finally {try {// 重要且易忽略步骤 (关闭流,切记!)if (dataIn != null) {dataIn.close();}// 销毁连接if (conn != null) {conn.disconnect();}} catch (IOException e) {e.printStackTrace();}}return null;}/** 输出连接信息 */private static void outConnInfo(HttpURLConnection conn, URL url) throws IOException {// url与url = conn.getURL()是等价的System.out.println("conn.getResponseCode():" + conn.getResponseCode());System.out.println("conn.getURL():" + conn.getURL());System.out.println("conn.getRequestMethod():" + conn.getRequestMethod());System.out.println("conn.getContentType():" + conn.getContentType());System.out.println("conn.getReadTimeout():" + conn.getReadTimeout());System.out.println("conn.getResponseMessage():" + conn.getResponseMessage());System.out.println("url.getDefaultPort():" + url.getDefaultPort());System.out.println("url.getFile():" + url.getFile());System.out.println("url.getHost():" + url.getHost());System.out.println("url.getPath():" + url.getPath());System.out.println("url.getPort():" + url.getPort());System.out.println("url.getProtocol():" + url.getProtocol());System.out.println("url.getQuery():" + url.getQuery());System.out.println("url.getRef():" + url.getRef());System.out.println("url.getUserInfo():" + url.getUserInfo());}public static void main(String[] args) {post("http://blog.csdn.net/atco/article/details/7949210", "");}}
阅读全文
1 0
- JAVA发送HTTP请求,并接受返回内容
- JAVA发送HTTP请求,并接受返回内容
- JAVA发送HTTP请求,并接受返回内容
- JAVA发送HTTP请求,并接受返回内容
- JAVA发送HTTP请求,并接受返回内容
- JAVA发送HTTP请求,并接受返回内容
- JAVA不使用第三方jar发送HTTP请求,并接受返回内容
- MFC怎样发送http请求并接受返回的结果?
- 在Java中使用HttpURLConnection发送http客户端请求、服务器端返回信息、接受服务器端的信息
- WebRequest,WebResponse发送请求并接受返回结果
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- JAVA发送HTTP请求,返回HTTP响应内容,实例及应用
- Java发送Http请求,解析html返回
- JQuery 字符串转为Data
- 经验分享 | 一个互联网项目如何实现持续集成
- C# ShortTime LongTime ShortDate LongDate 的区别
- Bugs-启动APP时短暂白/黑屏现象的解决
- css 更改滚动条样式
- JAVA发送HTTP请求,并接受返回内容
- SVN属性操作命令
- Flash已死,哪项技术将会步其后尘?
- 用tracert等工具分析网站访问速度慢的原因
- HDU 3612 Find a way【简单搜索bfs】
- nginx之负载均衡
- 从CMD进入MySql,以及PHP连接数据库时的字符串设置
- 极光推送Demo
- easyui datagrid 导出Excel