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

HttpClient学习笔记

2017-10-11 10:01 232 查看
随着互联网的飞速发展,技术的更新迭代简直不要太快,而作为一个程序员,尽快的了解每一门技术是必不可少的一个环节。

但是我们不能盲目地学习,而是应该有明确的步骤,有较为适合自己的方法,这样去学习的话,一定会事半功倍。

我的学习步骤,大概是这样:

①是什么?同类技术有哪些?优点?

②做什么?解决什么问题?以前怎么做?

③怎么做?快速入门(看入门视频,教程),写demo,项目实践

本篇博文我们也将大致的从这几个步骤来了解学习httpclient。

①是什么?

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

同类技术:HttpComponents、HttpURLConnection等,httpclient是目前的主流

优点:

1. 基于标准、纯净的java语言。实现了Http1.0和Http1.1
2. 以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。
3. 支持HTTPS协议。
4. 通过Http代理建立透明的连接。
5. 利用CONNECT方法通过Http代理建立隧道的https连接。
6. Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos认证方案。
7. 插件式的自定义认证方案。
8. 便携可靠的套接字工厂使它更容易的使用第三方解决方案。
9. 连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。
10. 自动处理Set-Cookie中的Cookie。
11. 插件式的自定义Cookie策略。
12. Request的输出流可以避免流中内容直接缓冲到socket服务器。
13. Response的输入流可以有效的从socket服务器直接读取相应内容。
14. 在http1.0和http1.1中利用KeepAlive保持持久连接。
15. 直接获取服务器发送的response code和 headers。
16. 设置连接超时的能力。
17. 实验性的支持http1.1 response caching。
18. 源代码基于Apache License 可免费获取。

②做什么?
HttpClient组件不但可以返回页面的源代码,也可以模拟网站中类似按钮操作一类的,这样可以做到不用打开浏览器登录网站只需通过运行程序就能进行网站中任意的操作动作。

例如:模拟访问浏览器,返回网页的html代码;网络爬虫抓包等
③怎么做?
本人入门学习的时候,看的是java1234小峰的入门级视频,自己跟着敲,然后网上看一些帖子,大致的了解之后,就动手进行项目实践了,俗话说得好,实践是检验真理的唯一标准。而且呢,在实践的过程中,你也可以检验你自己究竟学的如何,哪些地方没有搞懂,这个时候你就可以针对性的继续学习了,当你完成一个实践性的项目时,将会发现,在这门技术上,你又学会了很多很多。
好了,不废话了,下面我们看一下最基本的使用吧:
下面是我们给出的一个简单的例子用来访问某个页面:

/**
*最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面
*@authorLiudong
*/
public class SimpleClient {
public static void main(String[] args) throws IOException
{
HttpClient client = new HttpClient();
// 设置代理服务器地址和端口
//client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);
// 使用 GET 方法 ,如果服务器需要通过 HTTPS 连接,那只需要将下面 URL 中的 http 换成 https
HttpMethod method=new GetMethod("http://java.sun.com");
//使用POST方法
//HttpMethod method = new PostMethod("http://java.sun.com");
client.executeMethod(method);

//打印服务器返回的状态
System.out.println(method.getStatusLine());
//打印返回的信息
System.out.println(method.getResponseBodyAsString());
//释放连接
method.releaseConnection();
}
}在这个例子中首先创建一个HTTP客户端(HttpClient)的实例,然后选择提交的方法是GET或者POST,最后在HttpClient实例上执行提交的方法,最后从所选择的提交方法中读取服务器反馈回来的结果。这就是使用HttpClient的基本流程。其实用一行代码也就可以搞定整个请求的过程,非常的简单!
好了,此篇文章说是讲述一下httpclient,倒不如说是分享一下个人的学习方法,骚年们,努力吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: