java http请求

/**
 * GET请求数据
 * @param apiUrl	请求地址
 * @return
 * @throws Exception
 */
public String getApiUrl(String apiUrl) throws Exception {
	Map<String, Object> headers = new HashMap<>();
	headers.put("X-Requested-With","XMLHttpRequest");
	headers.put("Content-Type","application/json;charset=UTF-8");
	return doGet(apiUrl, headers);
}


/**
 * POST请求数据
 * @param apiUrl 请求地址
 * @param paramsJSON 请求参数  json字符串
 * @return
 * @throws Exception
 */
public String postApiUrl(String apiUrl ,String paramsJSON ) throws Exception {
	Map<String, Object> headers = new HashMap<>();
	headers.put("X-Requested-With","XMLHttpRequest");
	headers.put("Content-Type","application/json;charset=UTF-8");
	return doPost(apiUrl , paramsJSON, headers);
}


/**
 * POST请求
 * @param url   请求地址
 * @param paramsJSON	请求参数  json字符串
 * @param headers	请求头
 * @return
 */
public  String doPost(String url, String paramsJSON, Map<?,?> headers){
	Date startDate = new Date();
	DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	BufferedReader in = null;
	try {
		System.out.println(dateFormat.format(startDate) + "  doPost开始:" + url+"\t"+ paramsJSON);
		// 定义HttpClient
		HttpClient client = HttpClientBuilder.create().build();
		// 实例化HTTP方法
		HttpPost request = new HttpPost();
		request.setURI(new URI(url));
		//设置参数
		request.setEntity(new StringEntity(paramsJSON, Charset.forName("UTF-8")));

		for (Iterator<?> iter = headers.keySet().iterator(); iter.hasNext(); ) {
			String name = (String) iter.next();
			String value = String.valueOf(headers.get(name));
			request.setHeader(name, value);
		}

		HttpResponse response = client.execute(request);
		int code = response.getStatusLine().getStatusCode();
		if (code == 200) {    //请求成功
			in = new BufferedReader(new InputStreamReader(response.getEntity()
					.getContent(), "utf-8"));
			StringBuffer sb = new StringBuffer("");
			String line = "";
			String NL = System.getProperty("line.separator");
			while ((line = in.readLine()) != null) {
				sb.append(line + NL);
			}
			in.close();
			System.out.println(dateFormat.format(new Date()) + "  doPost结束:" + url+"\t"+paramsJSON);
			return sb.toString();
		} else {    //
			System.out.println("状态码:" + code + "  " + url);
			return null;
		}
	} catch (Exception e) {
		long diff = new Date().getTime() - startDate.getTime();
		long seconds = diff / 1000;
		System.out.println("请求异常: " + url + "   耗时" + seconds);
		e.printStackTrace();
		return null;
	}
}


/**
 * GET请求
 * @param url 请求地址
 * @param headers	请求头
 * @return
 */
public  String doGet(String url, Map<?,?> headers) {
	Date startDate = new Date();
	DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	BufferedReader in = null;
	try {
		System.out.println(dateFormat.format(startDate) + "  doGet:" + url);
		// 定义HttpClient
		//HttpClient client = new DefaultHttpClient();
		HttpClient client = HttpClientBuilder.create().build();
		// 实例化HTTP方法
		HttpGet request = new HttpGet();
		request.setURI(new URI(url));
		for (Iterator<?> iter = headers.keySet().iterator(); iter.hasNext(); ) {
			String name = (String) iter.next();
			String value = String.valueOf(headers.get(name));
			request.setHeader(name, value);
		}

		HttpResponse response = client.execute(request);
		int code = response.getStatusLine().getStatusCode();
		if (code == 200) {    //请求成功
			in = new BufferedReader(new InputStreamReader(response.getEntity()
					.getContent(), "utf-8"));
			StringBuffer sb = new StringBuffer("");
			String line = "";
			String NL = System.getProperty("line.separator");
			while ((line = in.readLine()) != null) {
				sb.append(line + NL);
			}
			in.close();
			return sb.toString();
		} else {    //
			System.out.println("状态码:" + code + "  " + url);
			return null;
		}
	} catch (Exception e) {
		long diff = new Date().getTime() - startDate.getTime();
		long seconds = diff / 1000;
		System.out.println("请求异常: " + url + "   耗时" + seconds);
		e.printStackTrace();
		return null;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1687F

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值