通过httpclient请求,有两种请求方式:GET请求和POST请求。
GET请求:
String url=“XXXXXXXXXXXXXXXXXXXXX”;//请求的URL
先获取连接客户端工具
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
获取构建URL的URIBuilder:
URIBuilder uriBuilder = new URIBuilder(url);
由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL参数集合,使用NameValuePair类:
List<NameValuePair> list = new LinkedList<NameValuePair>();
BasicNameValuePair param1 = new BasicNameValuePair("page", page);
BasicNameValuePair param2 = new BasicNameValuePair("beginDate", time.getStartTime());
BasicNameValuePair param3 = new BasicNameValuePair("endDate", time.getEndTime());
BasicNameValuePair param4 = new BasicNameValuePair("rows", "100");
list.add(param1);
list.add(param2);
list.add(param3);
list.add(param4);
//将参数设置到URL中
uriBuilder.setParameters(list);
// 根据带参数的URI对象构建GET请求对象
HttpPost httpPost = new HttpPost(uriBuilder.build());
/*
* 添加请求头信息
*/
httpGet.addHeader(“X-App-ID”, account.getAppId());
httpGet.addHeader(“X-Sign”, account.getSign());
// 浏览器表示
httpGet.addHeader(“User-Agent”, “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)”);
// 传输的类型
httpGet.addHeader(“Content-Type”, “application/x-www-form-urlencoded”);
// 执行请求
response = httpClient.execute(httpGet);
// 获得响应的实体对象
HttpEntity entity = response.getEntity();
// 使用Apache提供的工具类进行转换成字符串
String entityStr = EntityUtils.toString(entity, “UTF-8”);
//输出请求内容
System.out.println(“API请求的内容:”+entityStr );