java网络请求工具方法

public final class EasyHttp {

	private static int TIMEOUT = 10000;

	// post请求
	public static String post(String url, Map<String, String> paramMap) {
		HttpURLConnection conn = null;
		String resultStr = null;
		try {
			URL urlA = new URL(url);
			conn = (HttpURLConnection) urlA.openConnection();
			conn.setConnectTimeout(TIMEOUT);// 连接超时 单位毫秒
			conn.setReadTimeout(TIMEOUT);// 读取超时 单位毫秒
			// 设置是否向connection输出,因为这个是post请求,参数要放在 http正文内,因此需要设为true
			conn.setDoOutput(true);
			// Read from the connection. Default is true.
			conn.setDoInput(true);
			// Set the post method. Default is GET
			conn.setRequestMethod("POST");
			// Post 请求不能使用缓存
			conn.setUseCaches(false);
			// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
			conn.setRequestProperty("Content-Type",
					"application/x-www-form-urlencoded");

			String paramStr = mapToString(paramMap);
			byte[] bypes = paramStr.getBytes("UTF-8");
			conn.connect();
			OutputStream out = conn.getOutputStream();
			out.write(bypes);// 输入参数
			out.flush();
			out.close();
			resultStr = returnFromUrl(conn);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			conn.disconnect();
		}
		return resultStr;
	}

	
	// get请求
	public static String get(String url, Map<String, String> paramMap) {
		HttpURLConnection conn = null;
		String resultStr = null;
		try {
			if (Assert.isNotEmptyMap(paramMap)) {
				String paramStr = mapToString(paramMap);
				// 如果不包含?
				if (!url.contains("?")) {
					url = url + "?";
				}
				// 如果结尾不是&?
				char lastChar = url.charAt(url.length() - 1);
				if ('&' != lastChar && '?' != lastChar) {
					paramStr = "&" + paramStr;
				}
				url = url + paramStr;
			}
			URL urlA = new URL(url);
			conn = (HttpURLConnection) urlA.openConnection();
			conn.setConnectTimeout(TIMEOUT);// 连接超时 单位毫秒
			conn.setReadTimeout(TIMEOUT);// 读取超时 单位毫秒
			conn.setDoOutput(true);
			conn.setDoInput(true);
			conn.setRequestMethod("GET");
			conn.setUseCaches(false);
			//conn.setRequestProperty("User-Agent", "");
			resultStr = returnFromUrl(conn);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			conn.disconnect();
		}
		return resultStr;
	}

	// 从url连接中取得返回值
	public static String returnFromUrl(HttpURLConnection conn) {
		String result = null;
		BufferedReader reader = null;
		try {
			// 取得输入流,并使用Reader读取
			reader = new BufferedReader(new InputStreamReader(
					conn.getInputStream()));
			StringBuffer buff = new StringBuffer();
			String oneLine = null;
			while ((oneLine = reader.readLine()) != null) {
				buff.append(oneLine);
			}
			result = buff.toString();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				reader.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return result;
	}

	// 将参数转为字符串
	public static String mapToString(Map<String, String> map) {
		if (Assert.isEmptyMap(map)) {
			return "";
		}
		Set<String> set = map.keySet();
		StringBuffer buf = new StringBuffer();
		for (String key : set) {
			String value = map.get(key);
			if (null != value) {
				String valueEn = null;
				try {
					valueEn = URLEncoder.encode(value, "UTF-8");
				} catch (Exception e) {
					e.printStackTrace();
				}
				buf.append(key).append("=").append(valueEn).append("&");
			}
		}
		buf.deleteCharAt(buf.length() - 1);
		return buf.toString();
	}

	private EasyHttp() {
	}
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值