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

JAVA-用HttpClient来模拟浏览器GET,POST2

    博客分类:
  • java
阅读更多

5.  提交XML格式参数

提交XML格式的参数很简单,仅仅是一个提交时候的ContentType问题,下面的例子演示从文件文件中读取XML信息并提交给服务器的过程,该过程可以用来测试Web服务。

import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
import org.apache.commons.httpclient.methods.PostMethod;
/**
 * 用来演示提交XML格式数据的例子
 
*/

public class PostXMLClient {
    
public static void main(String[] args) throws Exception {
        File input 
= new File(“test.xml”);
        PostMethod post 
= new PostMethod(“http://localhost:8080/httpclient/xml.jsp”);
        
// 设置请求的内容直接从文件中读取
     post.setRequestBody(new FileInputStream(input));
        
if (input.length() < Integer.MAX_VALUE) 
           post.setRequestContentLength(input.length());
        
else           
           post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);
        
// 指定请求内容的类型
     post.setRequestHeader("Content-type""text/xml; charset=GBK");
        HttpClient httpclient 
= new HttpClient(); 
        
int result = httpclient.executeMethod(post); 
        System.out.println(
"Response status code: " + result);
        System.out.println(
"Response body: ");
        System.out.println(post.getResponseBodyAsString());
        post.releaseConnection();
    }

}
 
6.  通过HTTP上传文件

httpclient使用了单独的一个HttpMethod子类来处理文件的上传,这个类就是MultipartPostMethod,该类已经封装了文件上传的细节,我们要做的仅仅是告诉它我们要上传文件的全路径即可,下面的代码片段演示如何使用这个类。

MultipartPostMethod filePost = new MultipartPostMethod(targetURL);
filePost.addParameter(
"fileName", targetFilePath);
HttpClient client 
= new HttpClient();
//由于要上传的文件可能比较大,因此在此设置最大的连接超时时间
client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
int status = client.executeMethod(filePost); 
上面代码中,targetFilePath即为要上传的文件所在的路径。

7.  访问启用认证的页面

我们经常会碰到这样的页面,当访问它的时候会弹出一个浏览器的对话框要求输入用户名和密码后方可,这种用户认证的方式不同于我们在前面介绍的基于表单的用户身份验证。这是HTTP的认证策略,httpclient支持三种认证方式包括:基本、摘要以及NTLM认证。其中基本认证最简单、通用但也最不安全;摘要认证是在HTTP  1.1中加入的认证方式,而NTLM则是微软公司定义的而不是通用的规范,最新版本的NTLM是比摘要认证还要安全的一种方式。

下面例子是从httpclient的CVS服务器中下载的,它简单演示如何访问一个认证保护的页面:
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.methods.GetMethod;
public class BasicAuthenticationExample {
   
public BasicAuthenticationExample() {
    }

   
public static void main(String[] args) throws Exception {
       HttpClient client 
= new HttpClient();
        client.getState().setCredentials(
            
"www.verisign.com",
            
"realm",
            
new UsernamePasswordCredentials("username""password")
        );
        GetMethod get 
= new GetMethod("https://www.verisign.com/products/index.html";);
        get.setDoAuthentication( 
true );
        
int status = client.executeMethod( get );
        System.out.println(status
+""+ get.getResponseBodyAsString());
        get.releaseConnection();
    }

}
 
8.  多线程模式下使用httpclient

多线程同时访问httpclient,例如同时从一个站点上下载多个文件。对于同一个HttpConnection同一个时间只能有一个线程访问,为了保证多线程工作环境下不产生冲突,httpclient使用了一个多线程连接管理器的类:MultiThreadedHttpConnectionManager,要使用这个类很简单,只需要在构造HttpClient实例的时候传入即可,代码如下:
MultiThreadedHttpConnectionManager connectionManager = 
   
new MultiThreadedHttpConnectionManager();
HttpClient client 
= new HttpClient(connectionManager); 

分享到:
评论

相关推荐

    JAVA-用HttpClient来模拟浏览器GET,POST.docx

    JAVA使用HttpClient模拟浏览器GET、POST请求 在本文中,我们将介绍如何使用Apache Commons HttpClient库来模拟浏览器的GET和POST请求。HttpClient库是一个开放源码的项目,是Apache Commons项目的一部分,旨在简化...

    用HttpClient来模拟浏览器GET POST

    为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再访问服务页面,这过程就需要自行处理cookie,想想当你用java.net.HttpURLConnection来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说...

    用HttpClient来模拟浏览器GET_POST

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

    用HttpClient来模拟浏览器的GET,POST

    在本文中,我们将深入探讨如何使用HttpClient来模拟浏览器的GET和POST操作,以及相关的源码分析和工具使用技巧。 首先,让我们了解GET和POST请求的基本概念。GET是HTTP协议中最常见的请求方法,通常用于获取服务器...

    java httpclient 模拟登录

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

    HttpClient模拟http浏览器请求

    这个库广泛应用于Web服务调用、API接口测试以及自动化脚本中,因为它可以模拟浏览器的行为,进行GET、POST等复杂的HTTP请求。 在Java编程中,HttpClient提供了一个强大的API,允许我们创建自定义的HTTP请求,设置...

    java web中 HttpClient模拟浏览器登录后发起请求

    Java Web 中 HttpClient 模拟浏览器登录后发起请求是指在 Java Web 应用程序中使用 HttpClient 库模拟浏览器的行为,模拟浏览器登录到服务器,然后发起请求获取资源。这种技术广泛应用于爬虫、自动化测试、数据爬取...

    java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    本篇文章将深入讲解如何使用`HttpURLConnection`类来模拟浏览器请求,并通过实例展示其在接口调用中的应用。 首先,`HttpURLConnection`是`java.net.URLConnection`的一个子类,用于处理HTTP协议。在使用`...

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

    - **HttpURLConnection**:Java标准库提供的基础HTTP客户端,可以用来发送GET和POST请求,模拟浏览器行为。 - **Apache HttpClient**:一个功能强大的HTTP客户端库,提供了更灵活和高效的API来处理HTTP请求。 - *...

    HttpClient模拟登录实例

    总之,HttpClient提供了一套强大的API,使Java开发者能够轻松地模拟浏览器进行HTTP通信,包括模拟登录操作。通过理解其核心概念和方法,我们可以实现复杂的Web服务交互,如带验证码的登录和解析HTML内容。在实践中,...

    浏览器发送模拟httpclient软件

    当我们谈论“浏览器发送模拟httpclient软件”时,我们指的是一个能够模拟浏览器行为的应用程序,允许用户通过编程方式执行HTTP请求,如POST和GET。 POST和GET是HTTP请求的两种主要方法。GET用于从服务器获取资源,...

    java模拟淘宝登录源码

    在后续的HTTP请求中,通过`HttpClient`的`setCookieStore()`方法设置这个`CookieStore`,这样HTTPClient就会自动添加Cookie到请求头,模拟浏览器的行为。 六、实战代码示例 ```java CloseableHttpClient ...

    commons-codec.jar;commons-logging-1.1.jar;commons-httpclient-3.1.jar

    HttpClient提供了丰富的API,使开发者能够灵活地控制HTTP交互,进行复杂的HTTP操作,如上传下载文件、模拟浏览器行为、处理认证和会话管理等。这个库在开发需要与Web服务器进行交互的应用程序时非常实用。 总结,这...

    Java模拟登录正方教务抓取成绩、课表、空教室

    在Java中实现这一功能,我们可以利用Apache HttpClient库来模拟浏览器发送HTTP请求,并使用Jsoup库来解析返回的HTML内容。 1. **Apache HttpClient**:HttpClient是Apache提供的一款强大的HTTP客户端工具包,可以...

    Java模拟get/post登陆(含验证码)

    本篇文章将深入探讨如何使用Java模拟GET/POST登录,特别是涉及验证码处理的情况。我们将主要关注Httpclient库的使用,以及可能涉及到的图像识别技术(OCR)。 首先,让我们了解一下HTTP的基本概念。HTTP是超文本...

    JavaHttpClient

    - 添加自定义请求头:例如,设置User-Agent、Accept-Language、Cookie等,以模拟浏览器行为或满足服务器要求。 5. **异步请求**: - HttpClient支持异步请求,使用`Future&lt;HttpResponse&gt;`,在回调函数中处理响应...

    HttpClient模拟登陆

    它是一个强大的工具,常用于自动化任务、Web服务交互以及模拟浏览器行为,比如模拟登录网站。在这个场景中,我们将探讨如何使用HttpClient实现模拟登录操作。 首先,了解HttpClient的基本使用。HttpClient库提供了...

    使用httpclient模拟表单提交

    HttpClient是Apache开源组织提供的一款强大的Java库,它允许我们方便地模拟浏览器行为,进行HTTP请求,并处理响应。本篇文章将深入探讨如何使用HttpClient来模拟表单提交。 表单提交通常是用户在网页上填写信息后...

    commons-httpclient-3.1.rar

    例如,对于需要登录的网站,我们可以利用HttpClient管理Cookie的能力,保存服务器返回的Session ID,并在后续请求中携带,从而模拟浏览器的会话保持。另外,HttpClient还支持多线程并发请求,可以用于批量处理多个...

Global site tag (gtag.js) - Google Analytics