HttpClient配置及示例代码
HttpComponents是Apache 旗下的项目。其中有一个HttpClient,即HTTP客户端。
...
...

大多时候我们只需要HttpClient,httpCore是开发服务端的我们可以一般都不需要。

之后我们建立项目,导入jar包,开始开发

第一个示例:
package com.zhi.httpClient; import java.io.IOException; import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
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 Demo {
public static void main(String[] args) {
CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、创建实例
//CloseableHttpClient意思是:可关闭的
HttpGet httpGet=new HttpGet("http://www.huimsoft.com"); //2、创建实例 //限制类型http://www.tuicool.com/ CloseableHttpResponse closeableHttpResponse=null;
try {
closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、执行
} catch (ClientProtocolException e) { //客户端协议异常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) { //IO异常
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、获取实体 String str="";
try {
str=EntityUtils.toString(httpEntity, "utf-8"); //获取网页内容,并且指定编码
} catch (ParseException e) { //解析异常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(str); //关闭closeableHttpResponse
try {
closeableHttpResponse.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //关闭closeableHttpClient
try {
closeableHttpClient.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
代码有很多,但是很多是在处理异常,所以我们也可以使用throws在方法上抛出,以简化代码格式,让其更好看。
package com.zhi.httpClient; import org.apache.http.HttpEntity;
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 Test {
public static void main(String[] args) throws Exception {
CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、创建实例
HttpGet httpGet=new HttpGet("http://www.huimsoft.com"); //2、创建请求 CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、执行
HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、获取实体
System.out.println(EntityUtils.toString(httpEntity, "utf-8")); //5、获取网页内容,并且指定编码 closeableHttpResponse.close();
closeableHttpClient.close();
}
}
当然我们要封装一个方法,然后使用throws抛出,最好不要在main上直接抛出异常。
其实有些网站读取时是有延时的,这个时候才用try...catch来处理比较好。
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。
搞爬虫,主要是用HttpClient模拟浏览器请求第三方站点url,然后响应,获取网页数据,然后用Jsoup来提取我们需要的信息。
HttpClient配置及示例代码的更多相关文章
- 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token
1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...
- C#微信公众平台接入示例代码
http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 这是微信公众平台提供的接入指南.官网只提供了php的示例代码 ...
- 股票数据调用示例代码php
<!--?php // +---------------------------------------------------------------------- // | JuhePHP ...
- 【译】用Fragment创建动态的界面布局(附Android示例代码)
原文链接:Building a Dynamic UI with Fragments 为了在Android上创建一个动态和多视图的用户界面,你需要封装UI控件和模块化Activity的行为,以便于你能够 ...
- 一个非常标准的Java连接Oracle数据库的示例代码
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\ ...
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
- Java连接Oracle数据库的示例代码
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径 ->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择 “D:\Oracle\ap ...
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...
- 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)
在我的 单点登录SSO示例代码 一文中,强烈不建议部署HTTP的SSO服务站点. 在此写个基于网络包嗅探的HTTP会话劫持程序,给大家一个直观的危害性展示. 示例中,我在一台Mac上登录58同城,被另 ...
随机推荐
- 应用安全 - 代码审计 - JavaScript
JavaScript Prototype污染
- CentOSLinux系统中Redis数据库的安装及配置
MongoDB 传统方式安装 关闭 SELinux 编辑配置文件:vim /etc/selinux/config 把 SELINUX=enforcing 改为 SELINUX=disabled Mon ...
- centos7下安装iperf时出现 make: *** No targets specified and no makefile found. Stop.的解决方案
我们在Linux 安装包的时候,使用make 命令出现:"make:*** No targets specified and no makefile found.Stop."这样的 ...
- K-th Number Poj - 2104 主席树
K-th Number Poj - 2104 主席树 题意 给你n数字,然后有m次询问,询问一段区间内的第k小的数. 解题思路 这个题是限时训练做的题,我不会,看到这个题我开始是拒绝的,虽然题意清晰简 ...
- POJ 1383题解(树的直径)(BFS)
题面 Labyrinth Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 4997 Accepted: 1861 Descript ...
- 找不到opencv_world320d.dll的问题
OpenCV执行时出现找不到opencv_world320d.dll的问题,解决办法:把自己opencv文件目录下的D:\opencv3.2.0\opencv\build\x64\vc14\bin(本 ...
- Eureka注册中心高可用及常用配置项
一.前言 前面已经简单的介绍了 Eureka 注册中心的使用以及查看.下面将继续进行 Eureka 的说明以及应用. 二.Eureka 的高可用搭建 在实际生产项目中,为了保证服务的可用性,连续性,一 ...
- 20191119PHP.class类练习
<?phpclass person{ public $name; private $age; public $sex; const WOMAN=0; const MAN=1; function ...
- jquery的点击事件
一.任务需求:两个按钮,一个DIV,点击显示按钮显示DIV,点击隐藏按钮,隐藏DIV. 二.任务分析:监听按钮的点击,操作DIV的显示隐藏效果. 三.代码实现: <body> <bu ...
- Jsp 自定义tag标签
1转自:https://blog.csdn.net/yusimiao/article/details/46835617 Jsp自定义tag标签 自定义tag标签的好处 程序员可以自定一些特定功能的标记 ...