package com.xweisoft.sms; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class ClientMultipartFormPost { public static void get() { // 定义httpClient的实例 //若要保持session 只能创建一次HttpClient实例 HttpClient httpclient = new HttpClient(); // GetMethod getMethod = new GetMethod( "url"); GetMethod getMethod = new GetMethod("url"); // 使用系统提供的默认恢复策略 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());// 创建get方法的实例 // getMethod.getParams().setParameter("User-Agent", // "Mozilla/4.0 (compatible; MSIE 5.0; Windows XP; DigExt)"); // httpclient = (HttpClient) request.getSession().getAttribute( // "HTTPCLIENT"); // 创建post方法实例 // PostMethod postMethod = new UTF8PostMethod("url"); // PostMethod postMethod = new UTF8PostMethod( "url"); // // // 填入各个表单域的值 // NameValuePair[] data = { new NameValuePair("apiId", "A21"), // new NameValuePair("account", "1801.....3"), // new NameValuePair("code", "0610"), // new NameValuePair("newPwd", "111111"), // new NameValuePair("idCard", "") }; // // // 将表单的值放入到post方法中 // postMethod.setRequestBody(data); // // postMethod.getParams().setParameter("http.protocol.cookie-policy", // CookiePolicy.BROWSER_COMPATIBILITY); // postMethod.setRequestHeader("Referer", "url"); try { // 执行GET方法 int statusCode = httpclient.executeMethod(getMethod); // 获取cookies Cookie[] cookies = httpclient.getState().getCookies(); for (Cookie cookie : cookies) { System.out.println("cookiesName----" + cookie.getName()); System.out.println("cookiesvalue----" + cookie.getValue()); } httpclient.getState().addCookies(cookies); // 执行post方法 // int statusCode = httpclient.executeMethod(postMethod); // if (statusCode == HttpStatus.SC_MOVED_TEMPORARILY) { // Header locationHeader = postMethod // .getResponseHeader("Location"); // String location = null; // if (locationHeader != null) { // location = locationHeader.getValue(); // } // postMethod = new PostMethod(location); // postMethod // .setRequestHeader("Referer", "url"); // NameValuePair[] data1 = { new NameValuePair("apiId", "A21"), // new NameValuePair("account", "1801...3"), // new NameValuePair("code", "0610"), // new NameValuePair("newPwd", "111111"), // new NameValuePair("idCard", "") }; // postMethod.setRequestBody(data1); // postMethod.getParams().setParameter( // "http.protocol.cookie-policy", // CookiePolicy.BROWSER_COMPATIBILITY); // int statusCode1 = httpclient.executeMethod(postMethod); // if (statusCode1 != HttpStatus.SC_OK) { // System.out.println("Method is wrong " // + postMethod.getStatusLine()); // } // } if (statusCode != HttpStatus.SC_OK) { System.out.println("Method is wrong " + getMethod.getStatusLine()); // System.out.println("Method is wrong " // + postMethod.getStatusLine()); } InputStream responseBody = getMethod.getResponseBodyAsStream(); // InputStream responseBody = postMethod.getResponseBodyAsStream(); BufferedReader reader = new BufferedReader(new InputStreamReader( responseBody, "utf-8")); String line = reader.readLine(); } catch (HttpException e) { // TODO: handle exception e.printStackTrace(); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } finally { getMethod.releaseConnection();// 释放链接 // postMethod.releaseConnection(); } } // Inner class for UTF-8 support public static class UTF8PostMethod extends PostMethod { public UTF8PostMethod(String url) { super(url); } @Override public String getRequestCharSet() { // return super.getRequestCharSet(); return "UTF-8"; } } }
相关推荐
HttpClient 4.5.2是这个库的一个稳定版本,带来了诸多改进和优化。本文将深入探讨HttpClient 4.5.2的核心特性、使用方法以及实际应用中的关键点。 1. HttpClient 4.5.2概述: HttpClient 4.x系列是Apache基金会开发...
赠送jar包:httpclient-4.5.2.jar; 赠送原API文档:httpclient-4.5.2-javadoc.jar; 赠送源代码:httpclient-4.5.2-sources.jar; 包含翻译后的API文档:httpclient-4.5.2-javadoc-API文档-中文(简体)-英语-对照...
httpclient jar包
`HTTPClient 4.5.2` 是一个广泛使用的Java库,它提供了用于执行HTTP和HTTPS请求的强大功能。这个版本是Apache HttpClient项目的一部分,致力于提供高效、灵活且可扩展的HTTP客户端实现。在本文中,我们将深入探讨这...
可以将`httpclient4.5.2.jar`文件导入到项目的libs目录下,然后在`build.gradle`文件中添加如下代码: ```groovy dependencies { implementation files('libs/httpclient4.5.2.jar') } ``` 2. 创建HttpClient实例:...
赠送jar包:httpclient-4.5.2.jar; 赠送原API文档:httpclient-4.5.2-javadoc.jar; 赠送源代码:httpclient-4.5.2-sources.jar; 包含翻译后的API文档:httpclient-4.5.2-javadoc-API文档-中文(简体)版.zip ...
HttpClient 4.5.3 (GA) is a maintenance release that fixes a number of defects found since 4.5.2. Please note that as of 4.4 HttpClient requires Java 1.6 or newer. Changelog: ------------------- * ...
《HttpClient 4.5.2 源码分析与应用》 HttpClient 是 Apache 开源组织提供的一个用于执行 HTTP 请求的 Java 库,广泛应用于各种网络编程任务,包括数据抓取、自动化测试、API 调用等。HttpClient 4.5.2 版本是其...
《深入剖析HTTPClient4源码》 HTTPClient4是Apache软件基金会开发的一个强大的HTTP客户端库,广泛应用于Java编程中,提供了高效、灵活且可扩展的HTTP通信能力。它支持多种HTTP协议版本,包括HTTP/1.1和部分HTTP/2...
基于Apache HttpClient 4.5.2 封装的工具类 HttpUtil 可用于爬虫和模拟登陆。使用新的语法后比3.*版本的速度感觉有提升。使用后注意资源的释放 pom 部分,应该不全,需要用的根据代码的import去找maven资源即可。 ...
《Apache HttpClient 4.5.2:构建高效网络通信的核心工具》 Apache HttpClient 是一个广泛使用的 Java 库,专门用于实现 HTTP 协议的客户端功能。在 4.5.2 版本中,该库提供了更为强大和灵活的网络通信能力,允许...
HttpClient 4.5.2是这个项目的版本之一,它包含了一系列的增强和修复,旨在提高性能、稳定性和兼容性。在这个版本中,用户可以获取到jar包以及源码,这对于理解和调试代码非常有帮助。 1. **HttpClient基本概念** ...
本文将详细解析Apache HttpClient 4.5.2版本,并提供解决方案,帮助开发者解决导入问题。 Apache HttpClient是一个功能强大且灵活的HTTP客户端实现,支持HTTP/1.1和部分HTTP/2协议。它的主要目标是提供一种可靠的、...
HTTPClient 4.5.2 是一个成熟的HTTP客户端API,由Apache软件基金会开发并维护。它提供了丰富的功能,如支持HTTP/1.1协议、连接管理、多线程处理、重定向处理、请求和响应的解析等。这个版本的更新可能包含了性能优化...
本篇文章将深入探讨`httpclient.jar`,它是Apache HttpClient的一个版本,具体为httpcomponents-client-4.5.2。 一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其主要目标是提供一个基于Java...
Java HttpClient是Apache软件基金会的Apache HTTP Components项目中的一个核心组件,它提供了一个强大的、...查阅httpclient-4.5.2-javadoc文档,可以获得更详细的方法和类的解释,进一步提升HttpClient的使用技巧。
在本压缩包中,主要包含的文件是`httpcomponents-client-4.5.2`,这是一个包含HttpClient库所有类和资源的JAR文件。 使用HttpClient库时,首先需要将其添加到项目的类路径中。对于Maven项目,可以在pom.xml文件中...