HttpClient入门一
HttpClient是一个实现了Http协议的功能强大的编程工具包。
要使用HttpClient,通常需要以下几部:
1、常见一个HttpClient实例
2、创建一个get或者post方法
3、告诉HttpClient去执行获取的方法
4、读取服务器的响应
5、释放连接
6、处理响应的内容
下面这个实例就实现了一个从指定网页去读取网页内容的代码。
package com.httpclient; import java.io.IOException; import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; public class Test01 { public static void main(String[] args) { /**
* 使用HttpClents的静态方法createDefault()创建一个可关闭的Http客户端
* 这个client中有很多重载的execute方法,可以用来执行请求
*/
CloseableHttpClient client= HttpClients.createDefault(); /**
* 创建一个对指定地址的get请求,
* 这个请求在执行之后,将会在response中返回一个entity
* 在org.apache.http.client.methods包中提供了
* 很多http方法,比如get,post,head之类的
*/
HttpGet get=new HttpGet("http://www.eastmoney.com/");
CloseableHttpResponse response=null;
try {
/**
* 使用默认的上下文执行请求
* 返回request的response
*/
response=client.execute(get); //打印出返回的状态栏
System.out.println(response.getStatusLine()); //从response中获取entity
HttpEntity entity=response.getEntity(); /**
* 利用EntityUtils这个工具包中的toString这个静态方法
* 可以轻松的获取entity中的内容,并且是以String类型返回
*/
System.out.println(EntityUtils.toString(entity)); } catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
response.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
上面的例子是通过get方法请求的,当然也可以通过post方法来实现。
HttpClient入门一的更多相关文章
- HttpClient入门
HttpClient入门 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 H ...
- httpClient 入门实例
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Unsu ...
- HttpClient入门三
我们在爬取网页的时候,由于需要不断的访问目标服务器,因此给目标服务器带来了很多的压力. 因此,很多访问量大的服务器都会有保护措施,如果检测到我们的行为,可以会禁止我们的ip访问. 这个时候,我们就需要 ...
- HttpClient入门二
通过上一节我们已经可以实现对一个网站源码的抓取. 但是,有一些网站,在爬取的时候会出现如下的错误: HTTP/1.1 503 Service Unavailable <!DOCTYPE html ...
- HttpClient 入门教程学习
HttpClient简介 HttpClient是基于HttpCore的HTTP/1.1兼容的HTTP代理实现. 它还为客户端认证,HTTP状态管理和HTTP连接管理提供可重用组件. HttpCompo ...
- HttpClient入门教程
HttpClient使用详解与实战一:https://www.jianshu.com/p/375be5929bed
- Httpclient入门代码
/** * Project Name:httpClient * File Name:Test.java * Package Name:httpClient * Date:2017年11月9日上午8:3 ...
- Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)
一.HttpClient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...
- HttpClient相关
HTTPClient的主页是http://jakarta.apache.org/commons/httpclient/,你可以在这里得到关于HttpClient更加详细的信息 HttpClient入门 ...
随机推荐
- Could not create pool connection. The DBMS driver exception was: null, message from server: "Host '192.168.XX.XX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
早上打开浏览器准备登陆某个系统,发现Error 404--Not Found,有点奇怪,这个服务器应该没人用了才对,然后到weblogic后台去看日志,报如下错误: "Could not c ...
- Python 实现双端队列 Deque
操作 Deque() 创建一个空的双端队列 add_front(item) 从队头加入一个item元素 add_rear(item) 从队尾加入一个item元素 remove_front() 从队头删 ...
- java第5章学习总结
学号20145336 <Java程序设计>第5周学习总结 教材学习内容总结 try catch JVM会先尝试执行try区块中的内容,若发生错误且与catch后面的类型相符,则执行catc ...
- Beta冲刺Day3
项目进展 李明皇 今天解决的进度 完善了程序的运行逻辑(消息提示框等) 明天安排 前后端联动调试 林翔 今天解决的进度 向微信官方申请登录验证session以维护登录态 明天安排 继续完成维护登录态 ...
- CSS <input type="file">样式设置
这是最终想要的效果~~~ 实现很简单,div设置背景图片,<input type="file"/>绝对定位上去再设置opacity:0(透明度为0 ) 直接上代码,希望 ...
- 常见web攻击总结
搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事.本篇主要简单介绍在Web领域几种常见的攻击手段及Java Web中的预防方式. XSS SQL注入 DDOS ...
- 从PRISM开始学WPF(八)導航Navigation?
0x6Navigation Basic Navigation Prism中的Navigation提供了一种类似导航的功能,他可以根据用户的输入,来刷新UI. 先看一个最简单的例子,通过按钮来导航到一个 ...
- vue+mint-ui的微博页面(支持评论@添加表情等)
github地址 https://github.com/KyrieZbw/Sneakers (如果觉得不错就给个小星星) 预览地址 页面展示 技术栈 vue2 + vuex + vue-router ...
- ssh_maven的搭建之dao层的开发
之前都是使用我们传统的方式进行引入jar包,现在我们使用maven进行管理依赖,这样,我们的jar就不需要我们进行管理,而且,我们的maven还可以进行项目构建,一个项目从编写源代码到编译,测试,运行 ...
- jenkins配置findbugs失败---不要随便忽略警告!一个因为文件所有权引发的血案
一:背景交代 这两天组长让我这边搭一个持续集成环境.梳理了需求后,因为我们的项目都是maven项目,所以我选择了jenkins+外置maven(区别于直接从jenkins里面安装)的方案.(cento ...