`
dannyhz
  • 浏览: 386989 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Java模拟表单post提交 HttpClient

阅读更多
http://www.xuehuile.com/blog/7b029a62311a45819ed4a0deae43a3a9.html


import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
 
 
public class SendPostMethod { 
     
 
    public  String methodPost(String url,NameValuePair[] data){ 
         
        String response= "";//要返回的response信息 
        HttpClient httpClient = new HttpClient(); 
        PostMethod postMethod = new PostMethod(url); 
        // 将表单的值放入postMethod中 
        postMethod.setRequestBody(data); 
        // 执行postMethod 
        int statusCode = 0; 
        try { 
            statusCode = httpClient.executeMethod(postMethod); 
        } catch (HttpException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发 
        // 301或者302 
        if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY 
                || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) { 
            // 从头中取出转向的地址 
            Header locationHeader = postMethod.getResponseHeader("location"); 
            String location = null; 
            if (locationHeader != null) { 
                location = locationHeader.getValue(); 
                System.out.println("The page was redirected to:" + location); 
                response= methodPost(location,data);//用跳转后的页面重新请求。 
            } else { 
                System.err.println("Location field value is null."); 
            } 
        } else { 
            System.out.println(postMethod.getStatusLine()); 
 
            try { 
                response= postMethod.getResponseBodyAsString(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
            postMethod.releaseConnection(); 
        } 
        return response; 
    } 
 
  
    public static void main(String[] args) throws UnsupportedEncodingException { 
         
        String url = "http://localhost/uchome/sendapi.php";
       
       
        NameValuePair name=new NameValuePair("name", "allen");
        NameValuePair password=new NameValuePair("password", "allen");
       
        NameValuePair[] data = {name,password};
       
      
        String response=new SendPostMethod().methodPost(url,data);
       
        System.out.println("********"+response);
        
       
    } 
 
} 

 

其中需要的jar包:

1、 commons-httpclient-3.1-rc1.zip http://jakarta.apache.org/commons/httpclient/downloads.html

2、commons-codec-1.3.jar    http://jakarta.apache.org/site/downloads/downloads_commons-codec.cgi

3、commons-logging-api.jar   在tomcat5.5中的Tomcat 5.5\bin目录下或者    http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi
分享到:
评论

相关推荐

    模拟表单post提交

    总的来说,Java中的HttpClient库是模拟表单POST提交的常用工具,它提供了丰富的API来创建和执行HTTP请求,处理各种类型的响应,是Java开发者在网络编程中的得力助手。通过熟练掌握HttpClient的使用,开发者可以更...

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

    java httpclient 模拟登录

    在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...

    使用httpclient模拟表单提交

    本篇文章将深入探讨如何使用HttpClient来模拟表单提交。 表单提交通常是用户在网页上填写信息后点击提交按钮,数据通过HTTP请求发送到服务器的过程。HttpClient为我们提供了模拟这一过程的能力,无论是GET还是POST...

    java动态提交网站httpclient

    HTTPClient库允许我们创建GET、POST等请求,添加头信息,处理响应,甚至进行更复杂的操作,如表单提交和文件上传。 在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入...

    httpclient测试登录并提交表单功能

    本文将详细介绍如何使用Apache HttpClient库进行模拟登录以及提交表单数据的操作。通过一个具体的示例程序来演示这一过程,帮助读者理解整个流程。 #### 使用场景 在Web应用开发过程中,常常需要模拟用户的登录行为...

    HttpClient模拟get,post请求并发送请求参数(json等)

    HttpClient还支持其他高级功能,如重试策略、Cookie管理、多部分表单数据上传等。在实际项目中,我们通常会封装一个HttpClientUtil工具类,以简化请求的创建和执行过程。 例如,一个简单的HttpClientUtil工具类可能...

    HttpClient模拟登录实例

    这个库广泛用于Web服务交互,特别是当需要模拟浏览器行为,如登录、提交表单或者处理网页上的动态内容时。在本实例中,我们将探讨如何使用HttpClient库来模拟登录网站,获取用户信息,以及处理带有验证码的登录场景...

    Java利用HttpClient模拟POST表单操作应用及注意事项

    在Java中,我们可以通过以下步骤使用HttpClient来模拟POST表单提交: 1. 引入依赖:确保你的项目中已经引入了Apache HttpClient库。通常,这可以通过Maven或Gradle的依赖管理实现。例如,在Maven中,可以在pom.xml...

    用HttpClient来模拟浏览器GET_POST

    使用HttpClient来模拟浏览器GET_POST HttpClient是一个Apache开源组织中的项目,隶属于Jakarta的commons项目,旨在简化HTTP客户端与服务器进行各种通讯编程。通过使用HttpClient,可以轻松地解决以前很头疼的事情,...

    浏览器发送模拟httpclient软件

    GET用于从服务器获取资源,而POST则用于向服务器提交数据,通常用于表单提交或创建新资源。模拟HTTP客户端工具使得开发者能够轻松地测试这些请求,而不必依赖于实际的网页浏览器。 HTTPClient是Java编程语言中的一...

    java发起http请求提交表单

    2. **使用Java模拟HTTP POST请求** 3. **表单参数处理** ### 1. 构建表单HTML字符串 在提供的代码片段中,我们首先看到的是构建了一个HTML表单字符串`strHtml`。这个字符串包含了表单的基本结构以及多个隐藏字段,...

    httpclient模拟post请求json封装表单数据的实现方法

    HTTPClient 是一个强大的 Java 库,它允许程序员模拟 HTTP 请求,包括 POST 请求。在这个场景中,我们关注的是如何使用 HTTPClient 发送一个 JSON 格式的 POST 请求并封装表单数据。下面将详细介绍这个过程。 首先...

    java 模拟登录(含验证码)

    在这个场景中,我们关注的是POST请求,因为大多数登录表单会通过POST方法提交数据,以确保数据的安全性。 Java模拟登录的关键步骤包括: 1. **构建HTTP请求**:使用像`HttpURLConnection`或者第三方库如`Apache ...

    httpclient模拟登陆

    ### HTTPClient 模拟登录详解 #### 一、概述 HTTPClient是Apache组织下的一个开源项目,它提供了功能丰富的HTTP客户端开发工具包,可以用来发送HTTP请求并接收响应。利用HTTPClient,我们可以轻松实现模拟登录的...

    httpclient模拟登录实例

    1. **构建请求**:首先,我们需要构造一个POST请求,因为登录通常涉及到表单数据的提交,而POST请求是提交数据的标准方式。例如,我们可以创建一个HttpPost对象,并设置目标URL为登录页面的地址。 ```java HttpPost...

    HttpClient 模仿表单上传文件

    总的来说,HttpClient提供了一个强大且灵活的API,使得在Java环境中模拟表单上传文件变得容易。它支持多种HTTP方法,可以处理复杂的HTTP头和实体,是进行HTTP通信的理想选择。通过理解multipart/form-data编码和...

    HttpClient模拟登陆

    登录通常涉及提交表单数据,这可以通过`NameValuePair`或`BasicNameValuePair`来实现,然后使用`UrlEncodedFormEntity`封装这些参数: ```java List<NameValuePair> formParams = new ArrayList(); formParams.add...

    java模拟微信浏览器访问.rar

    这个“java模拟微信浏览器访问.rar”压缩包中的主要文件是“MonitorWeixinBrowser.java”,我们可以推测这是一个Java程序,用于模拟微信内置浏览器的行为。下面将详细介绍这个主题的相关知识点。 1. **Java HTTP ...

    HttpClient模拟登陆方正系统

    2. 构建POST请求:模拟登录通常涉及到POST请求,因为登录通常需要提交表单数据。我们可以使用HttpPost对象来构建请求: ```java HttpPost httpPost = new HttpPost("http://example.com/login"); ``` 3. 设置请求头...

Global site tag (gtag.js) - Google Analytics