- 浏览: 53692 次
最新评论
-
java-lxm:
不错,学习了
httpclient4.5 的一些细节
文章列表
httpclient是Apache下的一个用于执行http网络访问的一个工具包。
大致流程:新建一个httpclient对象->新建一个httpRequest对象->用httpclient去执行->得到一个response->通过解析这个response来获取自己所需要的信息。
一、新建httpClient对象:
在httpClient4.5中,初始化的方式已经和以前版本有一些不同。
有大致以下几种方式:
static CloseableHttpClient client = HttpClients.createDefault();
//最好使用s ...
在做爬虫的时候,如何生成一个靠谱可用的httpclient对象是非常关键的。在踩了无数的坑之后,总结出一个较为完善的httpclient生成方式。
可以解决以下问题:
1、设置代理问题
2、设置默认的cookiestore对象,用来保存请求中的cookie。以便进行深层次访问。
3、在请求失败的重试策略问题
4、默认useragent的问题
5、https及自签名证书的验证问题
/**
* 新建一个通用httpclientbuider
* 使用代理时,必须一起传入host对象。
* 不传入host对象的时候,代理不会生效
*/
...
抓取到网页里的或者服务器返回的content里的json文件后,需要对文件进行解析。
可以利用gson搞定。demo如下:(代码里用到了httpclient的一些方法。)
HttpResponse response = getUrlResponse(
"url",
null, null, 60000);
try {
String json = EntityUtils.toString(response.getEntity());
JsonParser parser = new JsonParser();
JsonObje ...
由于研究需要,需要频繁的访问,为了避免重复代码,写了个get和post通用方法。
/**
* this is a method for execute a get or post;if you want to execute a get
* method ,make the param list to be null;default timeout period is 6000ms.
* if you want to add some yourself headers,the third param is for u;else
* make it be null;
...
File oldFile = new File("D:\\workspace\\FetchMzw\\test");
File newfile = new File("E:\\download\\BBB");
boolean b = file.renameTo(newfile);
System.out.println(b);
在windows系统下,对renameTo做了几个测试,发现在大多数情况下,renameTo都是失败的,虽然可以指定两个file的详细路径,但是效果并不尽如人意。
要想成功有如下几个要求:
1、newfile的getparent必 ...
最近学习MongoDB,研究官方文档java版本,以下是自己的理解(内容参考官方文档):
官方文档地址:https://docs.mongodb.org/getting-started/java/query/
遍历一个collection有两种方法:
以document为单位遍历一个collection:
1、可用mongodb自带的遍历 ...
原来用gae的时候折腾过java自带代理。然而并没有什么卵用。
现在用gae也时常不稳定,处于基本报废状态。今天找到了另外一个可用的,并且发现httpclient也有自带的设置代理功能。代码如下:
HttpHost proxy = new HttpHost("127.0.0.1", 8087);
DefaultProxyRoutePlanner routePlanner = newDefaultProxyRoutePlanner(proxy);
CloseableHttpClient httpClient =HttpClients.custom().setRoutePla ...