httpclient一个实现了HTTP协议的客户端编程工具包
一个使用的背景:登录需要验证,需要压力测试一下,用webdriver等工具搞不定
就用到了他,有ocr开源的工具,结合httpclient完美的处理了
网上的例子主要是3的版本,这里主要是总结一下4的版本
首先放几个例子这儿参考:
http://www.cnblogs.com/loveyakamoz/archive/2011/07/21/2113252.html
http://blog.csdn.net/java2000_net/article/details/3720571
本身带的例子也不错:下载地址,api的参考
http://hc.apache.org/downloads.cgi
放一个例子这儿,自己参考:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet getMethod = new HttpGet(
"http://10.101.2.13:28080/ECLink//rand.action");
HttpPost httpost = new HttpPost(
"http://10.101.2.13:28080/ECLink/user_validLogin.action");
try {
String yzm = "";
HttpResponse response = httpclient.execute(getMethod);
Header headers[] = response.getAllHeaders();
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
StringBuilder cookieValue = new StringBuilder();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
cookieValue.append(cookies.get(i).toString());
}
}
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
saveFile(instream, "2.bmp");
InputStream instream2 = new FileInputStream("2.bmp");
BufferedImage bi = ImageIO.read(instream2);
yzm = ImageRead.read(bi, 1);
System.out.println(yzm + "-----------------------------");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("userName", "admin"));
nvps.add(new BasicNameValuePair("password", "888888"));
nvps.add(new BasicNameValuePair("validCode", yzm));
httpost.setEntity(new UrlEncodedFormEntity(nvps));
response = httpclient.execute(httpost);
HttpEntity entity1 = response.getEntity();
if (entity1 != null) {
// System.out.println("Response content: " +
// inputStream2String(entity1.getContent()));
saveFile(entity1.getContent(), "3.html");
instream.close();
}
for (int i = 1; i <= 1; i++) {
List<NameValuePair> list1 = new ArrayList<NameValuePair>();
HttpPost httpost1 = new HttpPost("http://10.101.2.13:28080/ECLink/computerCheck_computerCheck.action");
list1.add(new BasicNameValuePair("sgid", sgid.trim()));
httpost1.getParams().setParameter("http.protocol.content-charset",HTTP.UTF_8);
httpost1.getParams().setParameter(HTTP.CONTENT_ENCODING, HTTP.UTF_8);
httpost1.getParams().setParameter(HTTP.CHARSET_PARAM, HTTP.UTF_8);
httpost1.getParams().setParameter(HTTP.DEFAULT_PROTOCOL_CHARSET, HTTP.UTF_8);
httpost1.setEntity(new UrlEncodedFormEntity(list1,HTTP.UTF_8));
response = httpclient.execute(httpost1);
HttpEntity entity2 = response.getEntity();
if (entity2 != null) {
// System.out.println("Response content: " +
// inputStream2String(entity1.getContent()));
saveFile(entity2.getContent(), "408.html");
instream.close();
}
httpost1.abort();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
httpost.abort();
getMethod.abort();
}
对于大的表单,感觉也不是很方便,还是没有直接用自动测试工具方便
分享到:
相关推荐
在本文中,我们将深入探讨`HttpClient`的实例应用,以及如何使用它来实现各种HTTP操作。 ### 1. `HttpClient`的基本用法 创建`HttpClient`实例通常是通过静态`HttpClientFactory`方法或直接实例化`HttpClient`完成...
随着技术的发展,从早期的HttpClient 3.x版本迁移到更新的HttpComponents HttpClient 4.x版本是一个常见的需求。这不仅仅是一个简单的升级过程,而是涉及到对API的变化、编程模型的更新以及对网络编程的更深层次理解...
### Commons HTTPClient4.X 组件应用详解 #### 一、引言 随着互联网技术的发展,越来越多的应用场景需要直接通过HTTP协议访问Web服务器上的资源。传统的做法是使用浏览器或者基于JDK提供的`java.net`包中的类如`...
总之,HttpClient 4是一个强大且灵活的HTTP客户端工具,对于Java开发者来说,它提供了处理HTTP通信的强大功能,适用于各种web应用和服务的开发。结合HttpCore NIO和HttpAsyncClient,它能够适应高并发和高性能的需求...
HttpClient 4 版本引入了许多改进,使得文件上传变得更加简单和高效。在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。...
在本文中,我们将深入探讨HttpClient 4的关键特性、使用方法以及常见应用场景。 1. **基本概念** - **HttpClient**:HttpClient 是一个实现了HTTP协议的客户端编程工具包,支持HTTP/1.0和HTTP/1.1协议,同时具备...
最新帮助文档通常会涵盖HttpClient 4的主要功能、用法、配置、异常处理以及最佳实践。以下是对HttpClient 4的一些关键知识点的详细解释: 1. **基本概念**: - HttpClient:HttpClient是客户端HTTP服务端点的抽象...
这篇博客通过实例展示了如何使用HttpClient4模拟登录并进行回贴操作,这对于理解HttpClient4的使用方法及其在网络编程中的应用非常有帮助。如果想要深入学习,可以参考官方文档和相关教程,以更好地掌握HttpClient4...
HTTPClient4是Apache软件基金会开发的一个强大的HTTP客户端库,广泛应用于Java编程中,提供了高效、灵活且可扩展的HTTP通信能力。它支持多种HTTP协议版本,包括HTTP/1.1和部分HTTP/2特性,同时也提供了丰富的功能,...
HttpClient-4.0.1 是一个Java客户端HTTP通信库,用于发送和接收HTTP消息。...本教程将介绍HttpClient的基本概念和使用方法。...在实际应用中,HttpClient提供了丰富的API来适应不同的需求,从而高效地进行HTTP通信。
HttpClient组件允许应用程序直接通过HTTP协议访问Web服务器上的资源,这对于RIA(Rich Internet Applications)和Web服务客户端的开发尤其有用。 HttpClient组件的主要特点和功能包括: 1. 实现了HTTP 1.0和1.1的...
1. **异步和同步API**: HttpClient 提供了同步和异步两种API,以适应不同的应用场景。同步API适合于简单且线性的工作流,而异步API则适用于处理大量并发请求,提高了系统性能。 2. **全面的HTTP协议支持**: ...
在这个“httpclient4 封装”中,我们将探讨HttpClient 4.2版本的使用,以及如何将它封装到自己的项目中。 HttpClient 4.2是Apache HttpClient系列的一个稳定版本,它支持HTTP/1.1和部分HTTP/2协议,提供了对HTTPS、...
HttpClient 4.x版本相较于之前的版本,在性能和易用性方面都有了显著提升,成为Android应用进行HTTP通信的首选工具之一。 #### 二、HttpClient简介 HttpClient不是一个完整的浏览器,而是一个专注于HTTP协议传输的...
HttpClient 4.x版本是Apache基金会开发的一个开放源码库,广泛应用于Web服务的客户端实现,允许开发者发送HTTP请求并处理响应。在这个初学阶段的学习中,HttpClient4.jar包将成为你探索网络通信的关键。 首先,了解...
在Java应用中,HttpClient-4经常用于网页抓取、API调用、数据传输等场景。 Apache HttpClient 4.2.2是这个库的一个特定版本,包含了对HTTP/1.1协议的全面支持,以及对HTTP/2的初步支持。此版本修复了一些已知问题,...
HttpClient之Https应用实例~ 包含: HttpClient 使用代理访问Https HttpClient 信任所有主机-对于任何证书都不做检查 HttpClient 允许所有证书的校验(包括过期证书)