HTTPClient
起一个好听的名字
学无止境,学海无涯,乐在其中
展开
-
httpclient4.5 https请求 忽略身份验证
import org.apache.commons.collections.MapUtils;import org.apache.http.*;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.h...转载 2018-07-12 10:27:47 · 365 阅读 · 0 评论 -
HttpClient模拟浏览器登录后发起请求(携带Cookie发请求)
大家都知道 使用httpClient能模拟浏览器发起请求,得到想要的反回结果。但在互联网中存在这样一种情况,某些资源只有登录后才可以查看或下载例如:百度文库、部分论坛(只有登录后才可以看某些板块) 浏览器实现这个效果需要如下几个步骤: Ø 1请求一个需要登录的页面或资源Ø 2服务器判断当前的会话是否包含已登录信息。如果没有登录重定向到登录页面转载 2016-07-28 18:04:31 · 4038 阅读 · 0 评论 -
HTTP如何理解无状态协议
HTTP无状态协议是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTP协议是无状态协议客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底转载 2016-10-26 10:49:38 · 270 阅读 · 0 评论 -
httpclient上传文件及文件名中文乱码问题
logger.info("请求url: "+url);HttpClient httpclient = new DefaultHttpClient();HttpPost http = new HttpPost(url);File file=null;try { List formparams = new ArrayList(); if(requestParameterMap.原创 2016-09-14 09:15:11 · 2935 阅读 · 0 评论 -
HttpClient来对付各种顽固的WEB服务器
般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的转载 2016-08-23 19:10:24 · 313 阅读 · 0 评论 -
java HttpServer构建http服务器
介绍摘自网络: JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,它支持Http和Https协议,提供了HTTP1.1的部分实现,没有被实现的那部分可以通过扩展已有的Http Server API来实现,程序员必须自己实现HttpHandler接口,HttpServer会调用HttpHandler实现类的回调方法来处理客户端请求,在转载 2016-08-31 15:15:31 · 1285 阅读 · 0 评论 -
keytool用法总结
内容概览:keytool的几个常用的命令。1.创建证书2.查看证书库3.导出证书文件4.导入证书的信息5.查看证书信息6.删除密钥库中的条目7.修改证书条目的口令--------------------------------------------------------------------------------------预备知识:keytoo转载 2016-08-02 16:48:55 · 343 阅读 · 0 评论 -
java SSL安全socket的通讯实例
1.使用keytool创建密钥对..并在服务端和客户端完成分配..具体方法可参看:java-使用keytool来创建管理密钥及证书等-java学习笔记(3) 2.建立客户端和服务端的socket实例: 客户端代码如下: public class SSLClient { public static void startSSLClient() throws IOExceptio转载 2016-08-02 11:46:45 · 405 阅读 · 0 评论 -
简单的利用UrlConnection,后台模拟http请求
这两天在整理看httpclient,然后想自己用UrlConnection后台模拟实现Http请求,于是一个简单的小例子就新鲜出炉了(支持代理哦):[java] view plain copy print?public class SimpleHttpTest { public static String send(String urlStr, M转载 2016-07-29 13:24:31 · 366 阅读 · 0 评论 -
httpclient3.x请求https的实例:
HttpClient请求https的实例:[java] view plain copy print?import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.security.c转载 2016-07-29 13:17:45 · 1015 阅读 · 0 评论 -
HttpClient 之HttpContext
首先是一个Servlet用于本次试验。package com.lu.controller;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.转载 2016-07-29 10:13:58 · 2363 阅读 · 0 评论 -
apache HttpClient学习系列---1
这两天开始准备做一个自己的网络爬虫,所以就各种找资料,找到了一个资料,讲的挺好的,用的就是HttpClient来写的,就在apache上下了jar包,准备自己编写,但是硬是找不到对应的类。上了apache官网看了看,原来资料上用的是apache原来的一个开源工程,叫Commons HttpClient,改项目已经早已被apache弃用,并不再更新新版本,取而代之的是Apache HttpCompo转载 2016-07-29 10:20:32 · 421 阅读 · 0 评论 -
HttpClient使用SESSIONID模拟用户发送请求
使用HttpClient版本 4.2.5 准备一已登录用户的sessionid:Java代码 public static void main(String[] args) { String url = "http://10.10.10.90/urcweb/api/http.do?method=get_im_info";转载 2016-11-16 14:07:36 · 4254 阅读 · 0 评论 -
HttpClient认证机制
1.服务器认证(Server Authentication)HttpClient处理服务器认证几乎是透明的,仅需要开发人员提供登录信息(login credentials)。登录信息保存在HttpState类的实例中,可以通过 setCredentials(String realm, Credentials cred)和getCredentials(String realm)来获取或设置。Http转载 2017-04-12 16:47:12 · 455 阅读 · 0 评论 -
HttpClient容易忽视的细节——连接关闭
Java代码 HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("http://www.apache.org"); try { client.executeMethod(method); byte[] responseBody = null;转载 2016-11-21 15:28:45 · 314 阅读 · 0 评论 -
httpclient4.2.1最新版连接池配置
[java] view plain copy/** * 适合多线程的HttpClient,用httpClient4.2.1实现 * @return DefaultHttpClient */ public static DefaultHttpClient getHttpClient() { // 设置组件参数,转载 2016-11-21 13:34:29 · 1133 阅读 · 0 评论 -
Http请求连接池 - HttpClient 的 PoolingHttpClientConnectionManager
两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间。Http连接需要的三次握手开销很大,这一开销对于比较小的http消息来说更大。但是如果我们直接使用已经建立好的http连接,这样花费就比较小,吞吐率更大。 传统的HttpURLConnection并不支持连接池,如果要实现连接池的机制,还需要自己来管理连接对象。对于网络请求这种底层相对复杂的操作,个人以为如果有可转载 2016-11-21 13:33:31 · 984 阅读 · 0 评论 -
HTTP keep-alive的实验
,HTTP1.1中持久连接已经是默认配置,除非设置Connection为close,否则默认都会进行持久连接。但是我们知道事实标准跟教科书还是可能会有一定差距的,所以不妨自己尝试一下。 我们知道,TCP建立连接时会进行三次握手,而握手是以一方发送一个SYN为开始的。下载抓包工具Wireshark之后,进行抓包调试。在Java里实现了一段模拟请求的代码:1转载 2016-11-21 10:19:10 · 361 阅读 · 0 评论 -
HttpClient的超时用法
HttpClient在使用中有两个超时时间,是一直接触和使用的,由于上次工作中使用httpClient造成了系统悲剧的情况,特地对它的两个超时时间进行了小小的测试,在这里记录下。 测试版本为HttpClient——3.1 一:连接超时:connectionTimeout 1:指的是连接一个url的连接等待时间。转载 2016-11-21 10:06:04 · 339 阅读 · 0 评论 -
HttpClient 4.5版本设置连接超时时间
HttpClient升级到4.5版本后,API有很多变化,HttpClient 4之后,API一直没有太稳定,我感觉4.5版本抽象后,很多API应该快稳定了。 使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间。这两个参数很重要,目的是为了防止访问其他http时,由于超时导致自己的应用受影响。 4.5版本中,这两个参数的设置都抽象到了Re转载 2016-12-01 14:34:36 · 384 阅读 · 0 评论 -
apache HttpClient 学习系列--2 之HttpContext
首先是一个Servlet用于本次试验。package com.lu.controller;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.转载 2016-12-01 13:51:56 · 323 阅读 · 0 评论 -
httpclient 下载大文件
最近,公司需要用到Java代码后台实现文件上传和下载,一开始选择java原生HttpUrlConnnection,找了一些博客文章,发现使用起来不是那么方便。之后选择了HttpClient,原来公司有一个HttpClient的工具,依赖的版本是4.2.x,但不包含文件上传下载部分,本人比较懒,于是网上找了一些代码,发现许多使用例子要么比较老,要么比较新,自从HttpClient版本从4.0开始,发转载 2016-11-18 11:47:10 · 4760 阅读 · 1 评论 -
HttpClient sessionID获取与设置
public static final String operatorHttpPost(String urlStr) throws Exception{ DefaultHttpClient client = new DefaultHttpClient(); HttpPost httpPost=new HttpPost(urlStr);转载 2016-11-16 14:08:13 · 13406 阅读 · 0 评论 -
CloseableHttpClient设置Timeout
昨天遇到一个问题需要设置CloseableHttpClient的超时时间,查了官方文档如下。新建一个RequestConfig:RequestConfig defaultRequestConfig = RequestConfig.custom() .setSocketTimeout(5000) .setConnectTimeout(5000) .setConnectionReq转载 2016-07-29 09:49:31 · 1084 阅读 · 0 评论 -
HttpClient的使用实例
客户端/** * 通过探针扫描IP地址段测试 * */public void selectByTanzhen() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionCo原创 2016-04-14 16:04:23 · 365 阅读 · 0 评论 -
HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看
HttpClient程序包是一个实现了 HTTP 协议的客户端编程工具包,要想熟练的掌握它,必须熟悉 HTTP协议。一个最简单的调用如下: import java.io.IOException;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolExcep转载 2016-04-08 13:52:06 · 317 阅读 · 0 评论 -
HttpClient 教程 (六)
第六章 高级主题6.1 自定义客户端连接在特定条件下,也许需要来定制HTTP报文通过线路传递,越过了可能使用的HTTP参数来处理非标准不兼容行为的方式。比如,对于Web爬虫,它可能需要强制HttpClient接受格式错误的响应头部信息,来抢救报文的内容。通常插入一个自定义的报文解析器的过程或定制连接实现需要几个步骤:提供一个自定义LineParser/LineFor转载 2016-04-08 13:51:22 · 193 阅读 · 0 评论 -
HttpClient 教程 (五)
第五章 HTTP客户端服务5.1 HttpClient门面HttpClient接口代表了最重要的HTTP请求执行的契约。它没有在请求执行处理上强加限制或特殊细节,而在连接管理,状态管理,认证和处理重定向到具体实现上留下了细节。这应该使得很容易使用额外的功能,比如响应内容缓存来装饰接口。DefaultHttpClient是HttpClient接口的默认实现。这个类扮演了很多特转载 2016-04-08 13:50:47 · 203 阅读 · 0 评论 -
HttpClient 教程 (四)
第四章 HTTP认证HttpClient提供对由HTTP标准规范定义的认证模式的完全支持。HttpClient的认证框架可以扩展支持非标准的认证模式,比如NTLM和SPNEGO。4.1 用户凭证任何用户身份验证的过程都需要一组可以用于建立用户身份的凭据。用户凭证的最简单的形式可以仅仅是用户名/密码对。UsernamePasswordCredentials代表了一组包含安全规则和转载 2016-04-08 13:50:10 · 248 阅读 · 0 评论 -
HttpClient 教程 (三)
第三章 HTTP状态管理原始的HTTP是被设计为无状态的,面向请求/响应的协议,没有特殊规定有状态的,贯穿一些逻辑相关的请求/响应交换的会话。由于HTTP协议变得越来越普及和受欢迎,越来越多的从前没有打算使用它的系统也开始为应用程序来使用它,比如作为电子商务应用程序的传输方式。因此,支持状态管理就变得非常必要了。网景公司,一度成为Web客户端和服务器软件开发者的领导方向,在它们转载 2016-04-08 13:49:13 · 225 阅读 · 0 评论 -
HttpClient 教程 (二)
第二章 连接管理HttpClient有一个对连接初始化和终止,还有在活动连接上I/O操作的完整控制。而连接操作的很多方面可以使用一些参数来控制。2.1 连接参数这些参数可以影响连接操作:'http.socket.timeout':定义了套接字的毫秒级超时时间(SO_TIMEOUT),这就是等待数据,换句话说,在两个连续的数据包之间最大的闲置时间。如果超时时间是0就解释为转载 2016-04-08 13:48:31 · 356 阅读 · 0 评论 -
HttpClient 教程 (一)
超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了。Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要HTTP协议支持的应用程序的数量。尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就是寻求弥补这项空白的组件,转载 2016-04-08 13:47:46 · 291 阅读 · 0 评论 -
HTTP协议和HttpClient的入门
URLConnectionHttpClient java 目录[-]HTTP协议HTTP协议的URLHTTP协议的请求和响应体HttpURLConnection和HttpClient 利用Http协议联网HttpURLConnection基本功能的使用HttpClient的入门HttpClient 功能介绍HttpClient 基本功能的使用GET 方法POST转载 2016-04-08 13:18:52 · 361 阅读 · 0 评论 -
HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2016-04-08 12:42:00 · 347 阅读 · 0 评论 -
URLConnection and HTTPClient的比较
1.概念 HTTP协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP协议来访问网络资源。在 JDK 的 java.net 包中已经提供了访问 HTTP协议的基本功能:HttpURLConnection。但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。 除此之外,在And转载 2016-04-29 15:36:38 · 283 阅读 · 0 评论 -
轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象
上一篇文章中,简单分享一下封装HttpClient工具类的思路及部分代码,本文将分享如何实现插件式配置HttpClient对象。如果你看过我前面的几篇关于HttpClient的文章或者官网示例,应该都知道HttpClient对象在创建时,都可以设置各种参数,但是却没有简单的进行封装,比如对我来说比较重要的3个:代理、ssl(包含绕过证书验证和自定义证书验证)、超时。还需要自己写。所以这转载 2016-07-28 18:17:33 · 414 阅读 · 0 评论 -
轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试
本文主要来分享一下该工具类的测试结果。工具类的整体源码不再单独分享,源码基本上都已经在文章中了。开始我们的测试。单线程调用测试: public static void testOne() throws HttpProcessException{ System.out.println("--------简单方式调用(默认post)--------"); String url =转载 2016-07-28 18:20:13 · 508 阅读 · 0 评论 -
轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
最近更新了一下HttpClientUtil工具类代码,主要是添加了一个参数HttpContext,这个是用来干嘛的呢?其实是用来保存和传递Cookie所需要的。因为我们有很多时候都需要登录,然后才能请求一些想要的数据。而在这以前使用HttpClientUtil工具类,还不能办到。现在更新了以后,终于可以了。 先说一下思路:本次的demo,就是获取csdn中的c币,要想获取c转载 2016-07-28 18:21:04 · 1356 阅读 · 0 评论 -
轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类
在写这个工具类的时候发现传入的参数太多,以至于方法泛滥,只一个send方法就有30多个,所以对工具类进行了优化,把输入参数封装在一个对象里,这样以后再扩展输入参数,直接修改这个类就ok了。 不多说了,先上代码:/** * 请求配置类 * * @author arron * @date 2016年2月2日 下午3:14:32 * @version 1.转载 2016-07-28 18:21:50 · 315 阅读 · 0 评论 -
轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能
验证码识别这项技术并不是本工具类的功能,而是通过一个开源的api来识别验证码的。这里做了一个简单的封装,主要是用来解决登陆时的验证码的问题。在线验证码识别官网:http://lab.ocrking.com/,github地址:https://github.com/AvensLab/OcrKing/,是一个功能非常强大的工具。 好了,言归正传,本次封装的工具重要代码如下:转载 2016-07-28 18:23:07 · 428 阅读 · 0 评论