您的位置:首页 > 理论基础 > 计算机网络

httpclient发送request请求时设置header和timeout

2015-09-25 15:45 633 查看
package com.xxx.xxx.common;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;

import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.HttpResponse;

import com.google.common.base.Charsets;

public class HttpRequest {
/**
* 向指定URL发送GET方法的请求
*
* @param url
*            发送请求的URL
* @param param
*            httprequest请求参数。
* @param headers
*            需要添加的httpheader参数
* @param timeout
*            请求超时时间
* @return result 所代表远程资源的响应结果
*/
public static String Get(String url, String param, Map<String, String> headers, int timeout) {
String result = "";
BufferedReader in = null;
String reqUrl = url + "?" + param;
try {
// 构造httprequest设置
RequestConfig config = RequestConfig.custom().setConnectTimeout(timeout)
.setConnectionRequestTimeout(timeout).build();
HttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
HttpGet htGet = new HttpGet(reqUrl);
// 添加http headers
if (headers != null && headers.size() > 0) {
for (String key : headers.keySet()) {
htGet.addHeader(key, headers.get(key));
}
}
// 读取数据
HttpResponse r = client.execute(htGet);
in = new BufferedReader(new InputStreamReader(r.getEntity().getContent(), Charsets.UTF_8));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
} finally {
try {
if (in != null) {
in = null;
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: