java调用http请求

原创 2016年08月31日 15:14:57
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;

import org.springframework.util.StringUtils;

public class AccessUrlUtil {

	/**
	 * 访问url
	 * 
	 * @param url
	 * @param method
	 * @param map
	 * @return
	 */
	public static Object accessUrl(String url, String method, Map<String, String> map) throws Exception {
		method = (null == method || "".equals(method)) ? "GET" : method;
		StringBuffer params = new StringBuffer("");
		if (null != map && !map.isEmpty()) {
			Iterator<String> keys = map.keySet().iterator();
			while (keys.hasNext()) {
				String key = keys.next();
				params.append(encode(key, map.get(key))).append('&');
			}
		}
		URL localURL = new URL(url);
		URLConnection connection = localURL.openConnection();
		HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
		httpURLConnection.setDoOutput(true);
		httpURLConnection.setRequestMethod(method);
		httpURLConnection.setRequestProperty("Accept-Charset", "utf-8");
		httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
		httpURLConnection.setRequestProperty("Content-Length", String.valueOf(params.length()));

		OutputStream outputStream = null;
		OutputStreamWriter outputStreamWriter = null;
		InputStream inputStream = null;
		InputStreamReader inputStreamReader = null;
		BufferedReader reader = null;
		StringBuffer resultBuffer = new StringBuffer("");
		String tempLine = null;

		try {
			outputStream = httpURLConnection.getOutputStream();
			outputStreamWriter = new OutputStreamWriter(outputStream);

			outputStreamWriter.write(params.toString());
			outputStreamWriter.flush();

			if (httpURLConnection.getResponseCode() >= 300) {
				throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
			}

			inputStream = httpURLConnection.getInputStream();
			inputStreamReader = new InputStreamReader(inputStream);
			reader = new BufferedReader(inputStreamReader);

			while ((tempLine = reader.readLine()) != null) {
				resultBuffer.append(tempLine);
			}

		} finally {

			if (outputStreamWriter != null) {
				outputStreamWriter.close();
			}

			if (outputStream != null) {
				outputStream.close();
			}

			if (reader != null) {
				reader.close();
			}

			if (inputStreamReader != null) {
				inputStreamReader.close();
			}

			if (inputStream != null) {
				inputStream.close();
			}

		}
		return resultBuffer.toString();

	}

	private static String encode(String key, String value) throws UnsupportedEncodingException {
		return URLEncoder.encode(key, "UTF-8") + '=' + URLEncoder.encode(value, "UTF-8");
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA发送http get/post请求,调用http接口、方法

http://blog.csdn.net/capmiachael/article/details/51833531 三个例子 —JAVA发送http get/post请求,调用http接口、方法 ...
  • zhushanzhi
  • zhushanzhi
  • 2017年06月08日 17:08
  • 1854

Java http请求和调用

关于http get和post请求调用代码以及示例。 参考:http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.htmlhttp请求...
  • qazwsxpcm
  • qazwsxpcm
  • 2017年05月27日 11:39
  • 2430

JAVA发送http get/post请求,调用http接口、方法

三个例子 —JAVA发送http get/post请求,调用http接口、方法例1:使用 HttpClient (commons-httpclient-3.0.jar jar下载地址:h...
  • CapMiachael
  • CapMiachael
  • 2016年07月05日 17:56
  • 45234

java模拟http请求调用远程接口工具类

java模拟http请求调用远程接口工具类
  • airwolk
  • airwolk
  • 2017年02月08日 11:42
  • 234

java模拟http请求携带header调用腾讯企业邮箱开放接口

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import...
  • dupeng41255
  • dupeng41255
  • 2015年01月15日 23:26
  • 3405

Java模拟http请求调用远程接口工具类(转)

package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe...
  • Axela30W
  • Axela30W
  • 2017年06月07日 11:00
  • 333

java调用Http请求 -HttpURLConnection学习

最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放...
  • sd0902
  • sd0902
  • 2013年08月20日 10:10
  • 30339

Java调用Http请求

package test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe...
  • zhaomiao1990
  • zhaomiao1990
  • 2015年11月19日 14:39
  • 230

C#智能设备 Windows CE利用http请求调用Java接口查询数据

项目需要用手持终端调用Java接口,手持终端是Windows ce 6.0 系统,下面代码是手持终端扫描条码后调用Java接口查询数据,查询出来的数据返回的是一串json数据,所以还需要创建相应的实体...
  • styxgreatE
  • styxgreatE
  • 2017年07月13日 16:16
  • 281

java后台请求http并保持Session

  • 2017年12月21日 09:28
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java调用http请求
举报原因:
原因补充:

(最多只允许输入30个字)