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请求调用远程接口工具类

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

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

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

Java http请求和调用

关于http get和post请求调用代码以及示例。 参考:http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.htmlhttp请求...

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

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import...

java调用Http请求 -HttpURLConnection学习

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

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

package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe...

Java调用Http请求

package test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe...

java http post和get请求回调

  • 2016年04月10日 16:50
  • 2KB
  • 下载

java写的HTTP请求测试工具

  • 2016年10月20日 18:13
  • 1.77MB
  • 下载

java 常见几种发送http请求案例

下面是作者在工作中总结的几种比较常见的使用java语言发送http请求的方式,希望对大家有所帮助,代码或注解处有不对的地方,欢迎大家留言指正,共同学习共同成长,谢谢大家!...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java调用http请求
举报原因:
原因补充:

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