`
mingnjintian
  • 浏览: 69734 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

使用apache httpclient请求数据(get/post),同时支持代理

    博客分类:
  • java
阅读更多

get方式获取数据,贴上代码

/**
	 * GET的方式请求
	 * @createDate: Apr 2, 2011 5:58:03 PM
	 * @param http_url
	 * @param isProxy
	 * @return
	 */
	public String doGet(String http_url, boolean isProxy) {
		HttpMethod method = null;
		try {
			URI uri = new URI(http_url, true);
			HttpClient client = new HttpClient();
			HostConfiguration hcfg = new HostConfiguration();
			hcfg.setHost(uri);
			client.setHostConfiguration(hcfg);
			if (isProxy) 
				setProxy(client);
			// 参数验证
			client.getParams().setAuthenticationPreemptive(true);
			// GET请求方式
			method = new GetMethod(http_url);
			client.executeMethod(method);
			System.out.println("state:" + method.getStatusLine());
			return method.getResponseBodyAsString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

 

 

POST方式获取数据,代码:

 

/**
	 * POST方式提交数据
	 * @createDate: Apr 2, 2011 5:58:03 PM
	 * @param http_url 
	 * @param isProxy
	 * @return
	 */
	public String doPost(String http_url, Map<String, String> paramaters,
			boolean isProxy) {
		PostMethod method = null;
		try {
			URI uri = new URI(http_url, true);
			HttpClient client = new HttpClient();
			HostConfiguration cf = new HostConfiguration();
			cf.setHost(uri);
			client.setHostConfiguration(cf);
			if (isProxy)
				setProxy(client);

			client.getParams().setAuthenticationPreemptive(true);
			method = new PostMethod(http_url);
			//添加参数
			if(paramaters!=null){
				Iterator<Entry<String, String>> its = paramaters.entrySet().iterator();
				while (its.hasNext()) {
					Entry<String, String> e = its.next();
					method.addParameter(e.getKey(), e.getValue());
				}
			}
			client.executeMethod(method);
			// 打印服务器返回的状态
			System.out.println(method.getStatusLine());
			// 输出返回的信息
			return method.getResponseBodyAsString();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 释放连接
			if(method!=null)
				method.releaseConnection();
		}
		return null;
	}

 

 

方法中使用到的代理,代码

 

 /**
  * 设置代理
  * @createDate: Apr 2, 2011 6:03:30 PM
  * @param client
  */
 private void setProxy(HttpClient client) {
  // 设置代理
  client.getHostConfiguration().setProxy(HTTP_HOST, HTTP_PORT);
  client.getState().setProxyCredentials(AuthScope.ANY,
    new UsernamePasswordCredentials(HTTP_USER, HTTP_PWD));
 }

 

 

附上测试代码

 

//get测试代码
String str_url = "http://mingnjintian-163-com.iteye.com/blog/985124";
new RequestManager().doGet(str_url,true);
		
//post测试代码
str_url = "http://mingnjintian-163-com.iteye.com/blog/985124";
new RequestManager().doPost(str_url, new HashMap<String, String>(),true);

 

分享到:
评论

相关推荐

    httpclient 执行get/post/put代码

    本文将深入探讨如何使用HttpClient执行GET、POST和PUT操作,同时结合给定的`HttpsRequestUtil.java`源码片段进行解析。 HttpClient库允许我们构建灵活、高效的HTTP客户端,支持多种请求方法,包括GET、POST和PUT。...

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

    接下来,我们讨论如何使用HttpClient进行GET请求。GET请求通常用于获取资源,不涉及请求体: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...

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

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

    Apache httpclient源码4.5.12

    Apache HttpClient 是一个强大的Java库,用于执行HTTP请求。在4.5.12版本中,它提供了丰富的功能,包括支持HTTP/1.1和部分HTTP/2协议,连接管理,重试策略,以及多种认证机制。这个源码版本是学习HTTP通信、网络编程...

    java发送http/https请求(get/post)Demo,亲测可用

    这里我们将深入探讨如何使用Java发送GET和POST请求,以及处理JSON数据。 首先,让我们关注GET请求。GET请求主要用于从服务器获取资源,其参数通常包含在URL中。在Java中,可以使用`HttpURLConnection`类或者第三方...

    java发送http/https请求(get/post)代码

    如果你需要更高级的功能,如支持异步请求、自定义头部或者使用HTTP库,可以考虑使用Apache HttpClient库。在你的项目中,你可能已经包含了名为`HttpsClient`的文件或模块,这个可能是对HttpClient的封装。HttpClient...

    apache httpclient jar包

    Apache HttpClient是一款广泛使用的Java库,专门用于执行HTTP请求。它属于Apache HttpComponents项目的一部分,旨在提供一个高效、灵活且可扩展的HTTP客户端API。在Java应用程序中,如果你需要与Web服务器进行交互,...

    HttpClient实现POST GET和文件下载

    它提供了丰富的API,使得开发者可以方便地发送HTTP请求(包括POST和GET)并处理响应,同时还支持文件的上传和下载功能。本文将深入探讨HttpClient如何实现这些功能。 ### POST请求 POST请求通常用于向服务器提交...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    HttpClientUtil 是一个用于发送 HTTP 请求的工具类,主要支持 GET 和 POST 方法。它使用了 Apache HttpClient 库,这是一个强大的 Java 客户端编程工具包,用于处理 HTTP 协议。以下是对类中关键方法和概念的详细...

    httpclient发送get请求和post请求demo

    在Java编程中,Apache HttpClient库是一个非常常用的工具,它提供了对HTTP协议的强大支持,包括GET和POST请求。本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    这个压缩包可能包含了实现HTTP GET和POST请求所需的jar包以及示例代码,帮助开发者理解如何使用HttpClient进行网络通信。下面将详细介绍HttpClient库,HTTP请求的基本概念,以及GET和POST方法的差异。 HttpClient是...

    使用java发送get和post请求实践

    在 Java 中发送 GET 和 POST 请求是非常常见的操作,今天我们将通过使用 Apache HttpClient 库来实现这些操作。 什么是 Apache HttpClient 库? Apache HttpClient 库是 Apache 软件基金会提供的一个开源库,用于...

    使用HttpClient异步请求数据

    文件`4.8通过HttpClient异步请求数据`可能是一个示例代码或教程,讲述了如何在Android应用的4.8版本中使用`HttpClient`进行异步数据请求。这个教程可能涵盖了设置请求参数、处理响应、异常处理以及如何在`AsyncTask`...

    Http(get)请求数据Android Studio使用HttpClient

    本教程将聚焦于使用`HttpClient`库进行GET请求,这是获取远程资源最常见的方式。请注意,本教程不涉及POST请求,POST主要用于向服务器提交数据。 ## 1. Android HttpClient介绍 `HttpClient`是Apache HTTP组件的一...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    本篇将详细介绍如何使用HttpClient发送HTTP请求,包括POST和GET方法,同时提供相关的jar包依赖以及Java代码示例,并对关键代码进行注解解释。 一、HttpClient库的引入 在Java项目中,首先需要添加HttpClient的jar包...

    apache HttpClient jar包

    3. **处理重定向和重试**:HttpClient能够自动处理服务器返回的重定向响应,同时支持自定义重试策略,以应对网络不稳定的情况。 4. **使用认证和安全机制**:它提供了对HTTP基本认证、摘要认证以及OAuth等安全协议...

Global site tag (gtag.js) - Google Analytics