java学习笔记 httpclient 4.5.6 第一天
学习httpclient的原因
-
总是想学学爬虫,看人家火车抢票秀到飞起、结课答辩调研数据琳琅满目,越发感觉自己菜的一比
-
几年前学的Java估计也凉的差不多了,所以准备让它“热乎”一下。
httpclient的安装
搜遍了整个网站,发现都是讲httpclient怎么用,安装的部分没有详细介绍的,一般只有下载网址http://hc.apache.org/downloads.cgi。
(课堂上老师只讲了类、传参、多线程、网络编程、可视化编程AWT&SWING,结课作业写一个类似飞秋的聊天软件就结束了。这种外部链接jar包的我们都没玩过2333)
httpclient的下载
-
Binary ,点击下载后压缩包里面是所有需要用到的jar包;
-
Source,点击下载后压缩包里有httpclient的源码和示例代码;
当然啦~第一次接触httpclient的我,把Binary和Source两个里面的都下载下来了2333333
jar包的使用
jar包的使用部分我还是不太理解,希望大家可以指点迷津,谢谢
一开始,我把这些jar包都放到了java安装目录的lib目录下,发现调用不了,只能直接把jar包扔到工程里,这样的话,就得每个工程复制一波,就很麻烦,等之后再在网上找一找叭~
我的操作流程是:
在eclipse中新建一个工程
-
在工程图标上右键 New->Folder,新文件夹命名为lib
-
把所有的jar包复制到lib文件夹下
-
在工程图标上右键 Build Path->Configure
Build Path… ,弹出一个对话框 -
在libraries里点击Add jars,选中lib文件夹下所有粘贴进去的jar包
-
然后在类里就可以import httpclient的类了
第一次码httpclient
我在图书馆借了《自己动手写网络爬虫》,这本书已经很老了。
各种问题接踵而来
第一个难题:书上的版本与现在的差别很大
书本上的代码没有标记import了哪些包,所以呢有些就按eclipse提示import,其余一部分那必然是那些类随着版本更新改名了呀,surprise~
第二个难题:cannot instantiate the type httpclient
书上的代码如下
//创建客户端
HttpClient httpclient=new HttpClient();
//创建get方法,类似于输入网址后点击回车
GetMethod getMethod=new GetMethod("http://www.baidu.com");
//获得状态码
int statusCode=httpclient.executeMethod(getMethod);
//查看命中情况
System.out.println("response="+getMethod.getResponseBodyAsString());
//释放连接
getMethod.releaseConnection();
这个难题就比较有意思了,在网上搜了十多分钟,出来各式各样的答案2333
- 第一种答案
HttpClient httpclient = new DefaultHttpClient();
这样写,不过得先import org.apache.http.impl.client.DefaultHttpClient;
这种方法确实可以解决cannot instantiate httpclient的问题,但是后面的get post 方法全都凉凉了 - 第二种答案(靠谱)
从4.×版本后,httpclient的用法发生极大变化。
①httpclient由一个类变成了一个接口
②GetMethod变成了HttpGet
下面展示一下官方的案例
改了一波之后,虽然不报这些错了,但是报了一堆我不知道咋改的错,血崩
//这段代码是有问题的,我不知道怎么解决,求帮助
package jE;
import org.apache.http.