`
qq_30312197
  • 浏览: 766 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HttpClient4.5.2

阅读更多
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.jar.zip

    HttpClient 4.5.2是这个库的一个稳定版本,带来了诸多改进和优化。本文将深入探讨HttpClient 4.5.2的核心特性、使用方法以及实际应用中的关键点。 1. HttpClient 4.5.2概述: HttpClient 4.x系列是Apache基金会开发...

    httpclient-4.5.2-API文档-中英对照版.zip

    赠送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-4.5.2.jar

    httpclient jar包

    HTTPClient4.5.2

    `HTTPClient 4.5.2` 是一个广泛使用的Java库,它提供了用于执行HTTP和HTTPS请求的强大功能。这个版本是Apache HttpClient项目的一部分,致力于提供高效、灵活且可扩展的HTTP客户端实现。在本文中,我们将深入探讨这...

    httpclient-4.5.2.jar安卓网络请求

    可以将`httpclient4.5.2.jar`文件导入到项目的libs目录下,然后在`build.gradle`文件中添加如下代码: ```groovy dependencies { implementation files('libs/httpclient4.5.2.jar') } ``` 2. 创建HttpClient实例:...

    httpclient-4.5.2-API文档-中文版.zip

    赠送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 ...

    httpclient4.5.3 jar完整包含所有依赖包

    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: ------------------- * ...

    httpcomponents-client-4.5.2-src

    《HttpClient 4.5.2 源码分析与应用》 HttpClient 是 Apache 开源组织提供的一个用于执行 HTTP 请求的 Java 库,广泛应用于各种网络编程任务,包括数据抓取、自动化测试、API 调用等。HttpClient 4.5.2 版本是其...

    httpclient4源码

    《深入剖析HTTPClient4源码》 HTTPClient4是Apache软件基金会开发的一个强大的HTTP客户端库,广泛应用于Java编程中,提供了高效、灵活且可扩展的HTTP通信能力。它支持多种HTTP协议版本,包括HTTP/1.1和部分HTTP/2...

    HttpClient 4.5 封装的工具类 HttpUtil 可用于爬虫和模拟登陆

    基于Apache HttpClient 4.5.2 封装的工具类 HttpUtil 可用于爬虫和模拟登陆。使用新的语法后比3.*版本的速度感觉有提升。使用后注意资源的释放 pom 部分,应该不全,需要用的根据代码的import去找maven资源即可。 ...

    httpcomponents-client-4.5.2

    《Apache HttpClient 4.5.2:构建高效网络通信的核心工具》 Apache HttpClient 是一个广泛使用的 Java 库,专门用于实现 HTTP 协议的客户端功能。在 4.5.2 版本中,该库提供了更为强大和灵活的网络通信能力,允许...

    HttpClient 4.52

    HttpClient 4.5.2是这个项目的版本之一,它包含了一系列的增强和修复,旨在提高性能、稳定性和兼容性。在这个版本中,用户可以获取到jar包以及源码,这对于理解和调试代码非常有帮助。 1. **HttpClient基本概念** ...

    httpcomponents-client-4.5.2-bin.tar.gz

    本文将详细解析Apache HttpClient 4.5.2版本,并提供解决方案,帮助开发者解决导入问题。 Apache HttpClient是一个功能强大且灵活的HTTP客户端实现,支持HTTP/1.1和部分HTTP/2协议。它的主要目标是提供一种可靠的、...

    httpclient-log4g相关jar包

    HTTPClient 4.5.2 是一个成熟的HTTP客户端API,由Apache软件基金会开发并维护。它提供了丰富的功能,如支持HTTP/1.1协议、连接管理、多线程处理、重定向处理、请求和响应的解析等。这个版本的更新可能包含了性能优化...

    httpclient.jar

    本篇文章将深入探讨`httpclient.jar`,它是Apache HttpClient的一个版本,具体为httpcomponents-client-4.5.2。 一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其主要目标是提供一个基于Java...

    Java-HttpClient帮助文档

    Java HttpClient是Apache软件基金会的Apache HTTP Components项目中的一个核心组件,它提供了一个强大的、...查阅httpclient-4.5.2-javadoc文档,可以获得更详细的方法和类的解释,进一步提升HttpClient的使用技巧。

    httpclient

    在本压缩包中,主要包含的文件是`httpcomponents-client-4.5.2`,这是一个包含HttpClient库所有类和资源的JAR文件。 使用HttpClient库时,首先需要将其添加到项目的类路径中。对于Maven项目,可以在pom.xml文件中...

Global site tag (gtag.js) - Google Analytics