`
includemain
  • 浏览: 32827 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

初试HttpClient

    博客分类:
  • Java
阅读更多


package com.tan.http;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.Header;
import org.apache.http.HeaderElement;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;

public class TestHttpClient {
	private static final String LOGINURL = "http://localhost:8080/login.jsp";
	private static final String USERNAME = "username";
	private static final String PASSWORD = "password";
	private static final String LINE = System.getProperty("line.separator");
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		CookieStore store = getCookieStore();
		if (store != null) {
			List<Cookie> cookies = store.getCookies();
			System.out.println(cookies);
//			for (Cookie cookie: cookies) {
//				System.out.println(cookie);
//			}
		}
	}
	private static CookieStore getCookieStore() throws UnsupportedEncodingException,
			IOException, ClientProtocolException {
		CookieStore store = null;
		DefaultHttpClient httpClient = new DefaultHttpClient();
		HttpPost httpPost = new HttpPost(LOGINURL);
		
		// 登录的参数 
		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
		
		// 登录的 Username
		nvps.add(new BasicNameValuePair("username", USERNAME));
		nvps.add(new BasicNameValuePair("password", PASSWORD));
		nvps.add(new BasicNameValuePair("URL", "/"));
		
		httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
		
		// 执行登录
		HttpResponse response = httpClient.execute(httpPost);
		// 获取 Http响应头中的 Set-Cookie
		Header header = response.getFirstHeader("Set-Cookie");
		HeaderElement[] elements = header.getElements();
		if (elements != null) {
			for (HeaderElement element : elements) {
				System.out.println(
							"HeaderElement's name : " + element.getName() + LINE + 
							"HeaderElement's value : " + element.getValue() 
							);
				
				// 获取 Cookies 
				store = httpClient.getCookieStore();
				break;
			}
		}
		return store;
	}

}


<%@ page contentType="text/html;charset=gb18030" pageEncoding="gb18030"%>
<%@ page import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> Login Form </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <SCRIPT LANGUAGE="JavaScript">
  <!--
	
  //-->
  </SCRIPT>
 </HEAD>

 <BODY>
  <%!
	private static boolean isEmpty(String v) {
		return v == null || v.trim().length() == 0;
	}
  %>


  <%
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	if (!isEmpty(username) && !isEmpty(password)) {
		out.println("Login successful");
	} else {
		out.println("Login failure");
	}
  %>
  <FORM METHOD="post" ACTION="login.jsp"  id="loginForm">
	<input type="text" name="username" />
	<input type="password" name="password"/>
	<input type="submit" value="submit" />
	<input type="reset" value="reset" />
  </FORM>
 </BODY>
</HTML>
分享到:
评论

相关推荐

    httpclient.jar包下载

    《深入解析httpclient.jar及其与code.jar的关联》 在Java开发中,HTTP通信是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包...

    HttpClientHelper 工具类

    HttpClientHelper 对这个类进行了封装,使得开发者无需直接与HttpClient接口打交道,而是通过更简洁、易用的方法调用来实现网络通信。这提高了代码的可读性和可维护性。 单例模式是软件设计模式的一种,确保一个类...

    httpclient httpclient.jar

    在本文中,我们将深入探讨HttpClient的核心概念、使用方法以及如何通过`httpclient.jar`进行实战应用。 首先,HttpClient的主要组件包括: 1. **HttpClient实例**:这是整个HTTP通信的核心,负责管理连接、请求和...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....

    httpClient需要的jar包

    本压缩包文件"httpClient"很可能包含了HttpClient库所需的必备JAR文件,这些文件通常包括HttpClient的核心库、依赖的第三方库以及可能的扩展模块。为了正确使用HttpClient,你需要确保将这些JAR文件添加到你的项目类...

    httpclient4.2.1.zip

    本文将深入探讨HttpClient 4.2.1的核心特性和使用方法,帮助开发者更好地理解和应用这个强大的工具。 一、HttpClient简介 HttpClient是一个开放源码的Java库,由Apache软件基金会维护。它为Java程序员提供了一个...

    httpclient

    创建HttpClient实例是使用HttpClient的第一步。通常,我们会创建一个`CloseableHttpClient`对象,这可以通过`HttpClientBuilder`或者`HttpAsyncClientBuilder`来实现。例如: ```java CloseableHttpClient ...

    HttpClient 调用WebService示例

    在本文中,我们将深入探讨如何使用HttpClient调用WebService。 首先,调用WebService通常涉及SOAP(Simple Object Access Protocol)或RESTful API。HttpClient可以处理这两种类型的Web服务。在本示例中,我们假设...

    Arduino HttpClient 库文件

    1. **实例化 HttpClient 对象**:首先,你需要创建一个 `HttpClient` 类的实例,例如 `HttpClient client;` 2. **设置服务器信息**:调用 `client.begin()` 函数,传入你要访问的服务器地址和端口号,如 `client....

    httpclient-4.5jar

    httpclient-4.5所需jar包,里面包含httpclient-4.5.jar等等10个必须的开发包。 1.commons-codec-1.9.jar 2.commons-logging-1.2.jar 3.fluent-hc-4.5.jar 4.httpclient-4.5.jar 5.httpclient-cache-4.5.jar 6....

    Java HttpClient 全部的jar包

    在Java项目中,使用HttpClient可以实现与Web服务器的高效通信。下面将详细介绍这12个jar包的作用及其在HttpClient中的功能: 1. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库提供了对Java Beans属性...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    这个实例主要涉及如何配置HttpClient来忽略SSL(Secure Socket Layer)验证,这对于在开发和测试环境中处理自签名证书或未认证的服务器非常有用。以下将详细介绍HttpClient的使用以及如何进行SSL验证的忽略。 首先...

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

    赠送jar包:httpclient-4.2.5.jar; 赠送原API文档:httpclient-4.2.5-javadoc.jar; 赠送源代码:httpclient-4.2.5-sources.jar; 赠送Maven依赖信息文件:httpclient-4.2.5.pom; 包含翻译后的API文档:httpclient...

    httpclient-4.5.3中文版文档,很实用

    HttpClient 4.5.3是该库的一个稳定版本,具有许多改进和修复,使得它在处理网络通信时更加高效和可靠。 HttpClient的主要功能包括: 1. **HTTP/1.1和HTTP/2支持**:HttpClient 4.5.3支持HTTP协议的最新版本,可以...

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

    赠送jar包:httpclient-4.5.6.jar; 赠送原API文档:httpclient-4.5.6-javadoc.jar; 赠送源代码:httpclient-4.5.6-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.6.pom; 包含翻译后的API文档:httpclient...

    Httpclient依赖包

    在Java应用程序中,HttpClient常用于Web服务的调用、数据抓取或自动化测试等场景。 HttpClient的核心特性包括: 1. **请求构造与执行**:HttpClient允许开发者精确控制HTTP请求的每一个细节,如方法类型(GET、...

    HttpClient所需jar包(全) httpClient.4.13jar

    HttpClient 4.13版本是这个库的一个较新版本,包含了一系列的改进和修复。 在Java开发中,HttpClient是一个常用的工具,尤其在处理Web服务或者API调用时。它支持同步和异步操作,可以处理复杂的HTTP协议细节,使...

    httpclient4.3工具类

    HttpClient 4.3版本是其一个稳定的发行版,它引入了许多改进和新特性,以提升性能和易用性。在这个`httpclient4.3工具类`中,我们看到的是一个自定义的`httpclientUtils`,它是为了满足特定项目需求而编写的,集成了...

Global site tag (gtag.js) - Google Analytics