关于Httpclient的使用总结如下:
- (1)当HttpClient的实例不再需要时,可以使用连接管理器关闭
- httpclient.getConnectionManager().shutdown();
- (1)当HttpClient的实例不再需要时,可以使用连接管理器关闭
- httpclient.getConnectionManager().shutdown();
- (2)针对HTTPs的协议的HttpClient请求必须用户和密码
- httpclient.getCredentialsProvider()
- .setCredentials(new AuthScope("localhost", 443),
- new UsernamePasswordCredentials("username", "password"));
- (2)针对HTTPs的协议的HttpClient请求必须用户和密码
- httpclient.getCredentialsProvider()
- .setCredentials(new AuthScope("localhost", 443),
- new UsernamePasswordCredentials("username", "password"));
- (3)如果不想获取HTTPClient返回的信息
- httpclient.abort();
- (3)如果不想获取HTTPClient返回的信息
- httpclient.abort();
- (4)httpclient传送文件的方式
- HttpClient httpclient = new DefaultHttpClient();
- HttpPost httppost = new HttpPost("http://www.apache.org");
- File file = new File(args[0]);
- InputStreamEntity reqEntity = new InputStreamEntity(
- new FileInputStream(file), -1);
- reqEntity.setContentType("binary/octet-stream");
- reqEntity.setChunked(true);
- // It may be more appropriate to use FileEntity class in this particular
- // instance but we are using a more generic InputStreamEntity to demonstrate
- // the capability to stream out data from any arbitrary source
- //
- // FileEntity entity = new FileEntity(file, "binary/octet-stream");
- httppost.setEntity(reqEntity);
- System.out.println("executing request " + httppost.getRequestLine());
- HttpResponse response = httpclient.execute(httppost);
- (4)httpclient传送文件的方式
- HttpClient httpclient = new DefaultHttpClient();
- HttpPost httppost = new HttpPost("http://www.apache.org");
- File file = new File(args[0]);
- InputStreamEntity reqEntity = new InputStreamEntity(
- new FileInputStream(file), -1);
- reqEntity.setContentType("binary/octet-stream");
- reqEntity.setChunked(true);
- // It may be more appropriate to use FileEntity class in this particular
- // instance but we are using a more generic InputStreamEntity to demonstrate
- // the capability to stream out data from any arbitrary source
- //
- // FileEntity entity = new FileEntity(file, "binary/octet-stream");
- httppost.setEntity(reqEntity);
- System.out.println("executing request " + httppost.getRequestLine());
- HttpResponse response = httpclient.execute(httppost);
- (5)获取Cookie的信息
- HttpClient httpclient = new DefaultHttpClient();
- // 创建一个本地Cookie存储的实例
- CookieStore cookieStore = new BasicCookieStore();
- //创建一个本地上下文信息
- HttpContext localContext = new BasicHttpContext();
- //在本地上下问中绑定一个本地存储
- localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
- //设置请求的路径
- HttpGet httpget = new HttpGet("http://www.google.com/");
- //传递本地的http上下文给服务器
- HttpResponse response = httpclient.execute(httpget, localContext);
- //获取本地信息
- HttpEntity entity = response.getEntity();
- System.out.println(response.getStatusLine());
- if (entity != null) {
- System.out.println("Response content length: " + entity.getContentLength());
- }
- //获取cookie中的各种信息
- List<Cookie> cookies = cookieStore.getCookies();
- for (int i = 0; i < cookies.size(); i++) {
- System.out.println("Local cookie: " + cookies.get(i));
- }
- //获取消息头的信息
- Header[] headers = response.getAllHeaders();
- for (int i = 0; i<headers.length; i++) {
- System.out.println(headers[i]);
- }
- (5)获取Cookie的信息
- HttpClient httpclient = new DefaultHttpClient();
- // 创建一个本地Cookie存储的实例
- CookieStore cookieStore = new BasicCookieStore();
- //创建一个本地上下文信息
- HttpContext localContext = new BasicHttpContext();
- //在本地上下问中绑定一个本地存储
- localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
- //设置请求的路径
- HttpGet httpget = new HttpGet("http://www.google.com/");
- //传递本地的http上下文给服务器
- HttpResponse response = httpclient.execute(httpget, localContext);
- //获取本地信息
- HttpEntity entity = response.getEntity();
- System.out.println(response.getStatusLine());
- if (entity != null) {
- System.out.println("Response content length: " + entity.getContentLength());
- }
- //获取cookie中的各种信息
- List<Cookie> cookies = cookieStore.getCookies();
- for (int i = 0; i < cookies.size(); i++) {
- System.out.println("Local cookie: " + cookies.get(i));
- }
- //获取消息头的信息
- Header[] headers = response.getAllHeaders();
- for (int i = 0; i<headers.length; i++) {
- System.out.println(headers[i]);
- }
- (6)针对典型的SSL请求的处理
- DefaultHttpClient httpclient = new DefaultHttpClient();
- //获取默认的存储密钥类
- KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
- //加载本地的密钥信息
- FileInputStream instream = new FileInputStream(new File("my.keystore"));
- try {
- trustStore.load(instream, "nopassword".toCharArray());
- } finally {
- instream.close();
- }
- //创建SSLSocketFactory,创建相关的Socket
- SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
- //设置协议的类型和密钥信息,以及断开信息
- Scheme sch = new Scheme("https", socketFactory, 443);
- //在连接管理器中注册中信息
- httpclient.getConnectionManager().getSchemeRegistry().register(sch);
- (6)针对典型的SSL请求的处理
- DefaultHttpClient httpclient = new DefaultHttpClient();
- //获取默认的存储密钥类
- KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
- //加载本地的密钥信息
- FileInputStream instream = new FileInputStream(new File("my.keystore"));
- try {
- trustStore.load(instream, "nopassword".toCharArray());
- } finally {
- instream.close();
- }
- //创建SSLSocketFactory,创建相关的Socket
- SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
- //设置协议的类型和密钥信息,以及断开信息
- Scheme sch = new Scheme("https", socketFactory, 443);
- //在连接管理器中注册中信息
- httpclient.getConnectionManager().getSchemeRegistry().register(sch);
- (7)设置请求的参数的几种方式
- A.在请求的路径中以查询字符串格式传递参数
- B.在请求的实体中添加参数
- List <NameValuePair> nvps = new ArrayList <NameValuePair>();
- nvps.add(new BasicNameValuePair("IDToken1", "username"));
- nvps.add(new BasicNameValuePair("IDToken2", "password"));
- httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
相关推荐
以下是对HttpClient主要特性和使用方法的详细说明: 1. **协议支持**: HttpClient支持HTTP 1.0和1.1协议,并且可以通过Java Secure Socket Extension (JSSE)实现对Secure Sockets Layer (SSL)或Transport Layer ...
总结来说,httpclient.jar是Java开发中用于HTTP通信的强大工具,而code.jar则可能是项目中特定功能或扩展的代码集合。两者结合使用,可以构建出功能完善的HTTP客户端解决方案。理解和熟练掌握HttpClient库,将有助于...
总结,HttpClient 4.2.1作为Java开发中的HTTP通信工具,不仅具备高效、稳定的特性,还提供了强大的功能,使得开发者能够轻松应对各种HTTP需求。无论是简单的GET请求还是复杂的POST操作,HttpClient都能游刃有余,为...
总结起来,这些jar包共同构成了一个完整的Java HttpClient环境,能够处理各种复杂的HTTP通信任务,从简单的GET和POST请求到复杂的文件上传、多部分表单数据处理,以及与Web服务器的高级交互。开发者可以根据项目需求...
总结,`commons-httpclient-3.0.jar`在JAVA中的应用,不仅提供了一种简单易用的HTTP客户端实现,还具有丰富的特性和扩展性,对于理解和实现网络通信具有重要的学习价值。然而,随着技术的进步,开发者应关注并适时...
总结来说,HttpClient提供了一个强大而灵活的接口来处理HTTP请求,而忽略SSL验证的配置则允许我们在非生产环境中快速地进行测试和开发。但请记住,忽视SSL验证在生产环境中可能会导致安全隐患,务必谨慎对待。
总结起来,`httpclient4.3工具类`是一个针对HttpClient 4.3的自定义包装,它封装了常见的HTTP操作,提供了便捷的接口供项目中使用。理解这个工具类的内部实现和HttpClient的核心概念,将有助于更好地利用它进行HTTP...
总结来说,HttpClient的封装是为了提高代码的可维护性和易用性,通过隐藏复杂实现细节,提供简洁的API接口,使开发更加高效。了解封装原理和实现方式对于Java网络编程非常重要,尤其是在处理大量HTTP请求的项目中。
HttpClient 3.1需要依赖commons-httpclient-3.1.jar、commons-logging.jar和commons-codec.jar这些jar包,而HttpClient 4.x的最新版本为4.1.2,官方不再维护3.x版本。HttpClient 4.x的jar包可以在Apache官方网站上...
五、总结 HttpClient作为Java网络编程的重要工具,其强大的功能和灵活性使其在网络爬虫开发中扮演了不可或缺的角色。通过熟练掌握HttpClient的使用,开发者可以构建出稳定、高效的网络爬虫,实现对互联网数据的高效...
总结,HttpClient 4.5.3版本为开发者提供了强大而灵活的HTTP客户端工具,通过理解并熟练掌握其API和核心概念,我们可以更高效地进行HTTP通信,提升应用程序的质量和性能。对于Java开发者来说,HttpClient无疑是一个...
五、总结 HttpClient 4.1.2作为Java中的HTTP客户端库,以其强大的功能、良好的可扩展性和灵活性,为开发者提供了便捷的HTTP通信解决方案。尽管后续版本(如4.5.x)引入了更多改进,但HttpClient 4.1.2仍然在许多...
总结,HttpClient 4.5 是一款强大且灵活的 HTTP 客户端库,其源码结构清晰,设计模式巧妙,通过深入学习和实践,开发者可以更好地利用它来实现高效、安全的网络通信。理解 HttpClient 4.5 的源码,不仅有助于我们...
#### 六、总结 通过上述分析,我们可以看到使用 HttpClient 实现文件下载的过程相对简单,主要涉及到了 HTTP 请求的构造、执行以及响应数据的处理等步骤。此外,还需要注意异常处理及资源的释放,以确保程序的健壮...
总结来说,HttpClient 4.3 是一个专为 HTTP 通信设计的库,它提供了高效、易用的接口,用于构造和执行各种 HTTP 请求。开发者可以利用它来实现与 Web 服务的交互、爬虫、数据抓取等任务,而无需关心底层的网络细节。...
### Httpclient官网教程中文版知识点总结 #### 一、引言 HTTP协议作为互联网的核心通信标准之一,在现代网络服务及物联网设备中扮演着至关重要的角色。随着技术的发展,越来越多的应用和服务依赖于HTTP协议来实现...
五、总结 HttpClient库为Java开发者提供了一个功能强大的HTTP客户端工具,不仅支持基本的GET和POST操作,还提供了丰富的高级功能以应对复杂网络环境的需求。通过使用HttpClient,开发者可以更方便、安全地与HTTP...
总结,HttpClient 3.1 JavaDoc CHM版为开发者提供了全面的API文档,帮助他们理解和使用HttpClient进行HTTP通信。虽然HttpClient已经更新到更高级的版本,但这个旧版本的文档对于维护旧项目或理解HTTP通信基础仍然...
总结来说,WPF中的异步调用Web API通过HttpClient能确保应用程序的响应性和用户体验。通过正确配置和使用HttpClient,开发者可以高效地与Web API进行通信,处理数据请求和响应,同时避免主线程被阻塞。记住,良好的...