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

httpclient 实例

2015-02-03 13:41 507 查看
最近想抓取网页于是想到httpclient,在网上找了一番,全都是commons-httpclient,并且试用后都是有问题。于是去apache官网找httpclient,发觉该项目已经独立了最新是httpclient-4.3.6。参考官网例子实现成功了,记录下

String url = "http://www.tool7001.com/IDCodeGenerate.aspx";
Map<String, String> params = new HashMap<String, String>() {
private static final long serialVersionUID = 1L;
{
put("p", "北京市");
put("c", "市辖区");
put("r", "东城区");
put("y", "2015");
put("m", "1");
put("d", "1");
put("g", "1");
put("n", "10");
}
};
Map<String, String> headerMap = new HashMap<String, String>() {
private static final long serialVersionUID = 1L;
{
put("Referer", "http://www.tool7001.com");
}
};
NameValuePair[] parametersBody = new NameValuePair[params.size()];
int i = 0;
for (Map.Entry<String, String> entry : params.entrySet()) {
parametersBody[i] = new BasicNameValuePair(entry.getKey(), entry.getValue());
i++;
}
Header[] headers = new Header[headerMap.size()];
i = 0;
for (Map.Entry<String, String> entry : headerMap.entrySet()) {
headers[i] = new BasicHeader(entry.getKey(), entry.getValue());
i++;
}
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpPost httpPost = new HttpPost(url);
List<? extends NameValuePair> parameters = Arrays.asList(parametersBody);
HttpEntity entity = new UrlEncodedFormEntity(parameters, "UTF-8");
httpPost.setEntity(entity);
httpPost.setHeaders(headers);
System.out.println("Executing request " + httpPost.getURI());
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
System.out.println(StringUtils.join(IOUtils.readLines(response.getEntity().getContent()), "\n"));
httpPost.abort();
} finally {
response.close();
}
} finally {
httpclient.close();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: