`

【转】HttpClient4 简单使用

    博客分类:
  • Java
 
阅读更多

需要导入的jar包


package main;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class Main {

	private static HttpClient hc = new DefaultHttpClient();

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("email", "xxx@gmail.com"));
		params.add(new BasicNameValuePair("pwd", "xxx"));
		params.add(new BasicNameValuePair("save_login", "1"));

		String url = "http://www.oschina.net/action/user/login";

		String body = post(url, params);
		System.out.println(body);
	}

	/**
	 * Get请求
	 * @param url
	 * @param params
	 * @return
	 */
	public static String get(String url, List<NameValuePair> params) {
		String body = null;
		try {
			// Get请求
			HttpGet httpget = new HttpGet(url);
			// 设置参数
			String str = EntityUtils.toString(new UrlEncodedFormEntity(params));
			httpget.setURI(new URI(httpget.getURI().toString() + "?" + str));
			// 发送请求
			HttpResponse httpresponse = hc.execute(httpget);
			// 获取返回数据
			HttpEntity entity = httpresponse.getEntity();
			body = EntityUtils.toString(entity);
			if (entity != null) {
				entity.consumeContent();
			}
		} catch (ParseException e) {
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (URISyntaxException e) {
			e.printStackTrace();
		}
		return body;
	}

	/**
	 * // Post请求
	 * @param url
	 * @param params
	 * @return
	 */
	public static String post(String url, List<NameValuePair> params) {
		String body = null;
		try {
			// Post请求
			HttpPost httppost = new HttpPost(url);
			// 设置参数
			httppost.setEntity(new UrlEncodedFormEntity(params));
			// 发送请求
			HttpResponse httpresponse = hc.execute(httppost);
			// 获取返回数据
			HttpEntity entity = httpresponse.getEntity();
			body = EntityUtils.toString(entity);
			if (entity != null) {
				entity.consumeContent();
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return body;
	}

}
分享到:
评论

相关推荐

    使用 HttpClient 和 HtmlParser 实现简易网络爬虫

    在使用HttpClient和HtmlParser实现网络爬虫的过程中,首先需要设置开发环境。这里推荐使用Eclipse Europa作为集成开发环境(IDE),并确保安装了JDK 1.6。在Eclipse中创建一个新的JAVA工程,并将HttpClient和...

    Android HttpClient用到的jar包

    在较旧的Android版本中,我们可以使用`DefaultHttpClient`,但在新版本中,由于HttpClient已被弃用,建议使用其他替代方案,如OkHttp或Retrofit。 3. **创建HttpPost对象**:根据需要上传文件的URL创建一个`...

    HttpClient 调用WebService示例

    HttpClient是Apache基金会开发的一个HTTP客户端库,广泛应用于Java开发者中,用于执行HTTP...对于RESTful API,使用HttpClient则更为简单,只需构造合适的URL和请求体,然后按照HTTP方法(如GET、POST)进行操作即可。

    Java HttpClient 全部的jar包

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

    httpClient

    在实际使用中,开发者需要理解每个库的核心概念和API,比如HttpClient中的`HttpClient`对象,`GetMethod`和`PostMethod`,以及FileUpload中的`FileItemFactory`和`ServletFileUpload`。同时,熟悉如何使用Commons IO...

    HTTPClient

    HttpClient4 – 获取状态码 **1.1 概览** 本节将详细介绍如何使用HttpClient 4.x版本来获取HTTP响应的状态码,并对其进行验证。这对于开发人员来说是一个非常实用的功能,可以帮助快速定位请求是否成功、服务器...

    HttpClient重新封装的HttpClient类

    封装后,我们可以控制实例的生命周期,或者使用`HttpClientFactory`来创建和管理实例,以优化连接池的使用。 2. **请求和响应的缓存**:为了提高性能,我们可以添加缓存机制,对于某些不变的HTTP请求,可以直接返回...

    HttpClient4.5全部jar包+简单实例

    `PTXCheckTools.java`是一个简单的实例,可能展示了如何使用HttpClient发送HTTP请求和处理响应。通常,它会包含以下步骤: 1. **创建HttpClient对象**:使用`HttpClientBuilder`或`HttpAsyncClientBuilder`构建...

    ESP8266HTTPClient.zip

    下面将详细阐述ESP8266HTTPClient库的功能、使用方法以及它在8266开发中的应用。 1. **库功能**: ESP8266HTTPClient库提供了一个简洁的API,允许开发者发起HTTP请求并处理响应。它支持HTTP和HTTPS协议,能够处理...

    HttpClient、乱码解决:实例

    以下是一个简单的使用HttpClient发送GET请求并处理乱码的示例: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(url); httpGet.setHeader("Accept-Charset...

    org.apache.commons.httpclient相关资源包

    Apache HttpClient 是一个强大的Java库,...无论是简单的网页抓取,还是复杂的Web服务调用,HttpClient都能提供强大的支持。在实际开发中,理解这些库的内部工作原理和使用方式,将有助于编写出更稳定、可维护的代码。

    Android HttpClient工具类

    本篇文章将深入探讨Android HttpClient的基本使用方法,帮助开发者理解和应用这个工具。 首先,我们来了解HttpClient的核心组件: 1. **HttpClient实例**:这是所有操作的基础,通过`HttpClient client = new ...

    apache-httpclient应用所有jar

    在本文中,我们将深入探讨HttpClient的核心概念、主要功能以及如何使用它来实现网络爬虫。 **HttpClient 主要特点** 1. **异步和同步API**: HttpClient 提供了同步和异步两种API,以适应不同的应用场景。同步API...

    HttpClient jar包下载

    使用HttpClient,你可以轻松地构建出能够与Web服务器进行通信的代码。以下是一些关键知识点: 1. **HttpClient对象创建**:首先,你需要创建一个HttpClient实例。这通常是通过HttpClientBuilder或...

    httpclient.post例子

    本示例将深入探讨如何使用HttpClient库实现POST请求。首先,我们需要理解POST请求的基本概念,它通常用于向服务器发送数据,比如提交表单或者上传文件。 在`httpclient.jar`包中,主要涉及`org.apache.http.client`...

    HttpClientUtils

    在使用HttpClientUtils时,开发者通常需要以下步骤: 1. 创建HttpClientUtils实例。 2. 配置请求参数,如URL、HTTP方法(GET、POST等)、请求头等。 3. 如果涉及文件上传,准备文件路径或文件流。 4. 调用工具类...

    Httpclient 簡單測試程式

    本篇文章将深入探讨"Httpclient简单测试程序"这一主题,以及如何使用它来与服务器进行通信。 首先,HTTPClient是Apache HttpClient库的简称,它是Apache软件基金会提供的一个开源项目,主要用于构建HTTP客户端应用...

Global site tag (gtag.js) - Google Analytics