HttpClient简单使用记录

记得很久之前好像学习过一次,但是当时没有什么网络开发的基础,经验,也没有深入学习。

后来接触到HttpClient应该是在学习Android的时候,在Android上开发应用,连接后台的时候有一种方法就是用HttpClient。

这一次,算是回顾吧,自己记性不太好,总是忘记东西,所以会把学到的东西都一点一点整理到博客上,

说道博客的话,希望什么时候,可以做一个自己的网站,大笑

1.pom.xml


		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.2.5</version>
		</dependency>

2.简单的示例

package org.ygy.doptest.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;

import lombok.SneakyThrows;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import com.google.common.collect.Lists;

public class HttpUtil {
	
	//注意:下面的注释,都是临时根据自己的理解加上的,以后会深入学习一下的,如果有问题,还请大家提出啊
	private static String post(String url , List<NameValuePair> params) throws Exception {
		//定义一个HttpClient,就叫HTTP客户端吧
		HttpClient httpclient = new DefaultHttpClient();
		
		//定义一个POST请求,当然,还有GET请求,一个请求,当然要有url
		HttpPost httpPost = new HttpPost(url);

		//这是一个表单实体,传递的都是单纯的参数类型,当然,使用UTF-8编码
		UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");
		
		//把表单实体,赋给POST请求
		httpPost.setEntity(formEntity);

		//让HTTP客户端执行POST请求,然后,我们就可以获得响应了
		HttpResponse response = httpclient.execute(httpPost);
		
		//我们从响应中,获取响应实体
		HttpEntity responseEntity = response.getEntity();

		//下面的操作,是从响应实体中,获取结果流
		StringBuffer result = new StringBuffer("");
		if (responseEntity != null) {
			InputStream instream = responseEntity.getContent();
			try {

				BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
				
				String data = null;

				while ((data = reader.readLine()) != null) {
					result.append(data);
					result.append("\n");
				}

			} catch (IOException ex) {
				throw ex;

			} catch (RuntimeException ex) {
				httpPost.abort();

				throw ex;

			} finally {
				instream.close();
			}
			
			//关闭连接
			httpclient.getConnectionManager().shutdown();
		}
		
		return result.toString();
	}
	
	@SneakyThrows
	public static String doPost(String url , NameValuePair... params){
		if(url == null || url.trim().equals("")) {
			throw new Exception("请求地址不能为空!");
		}
		
		return post(url , Lists.newArrayList(params));
	}
	
	@SneakyThrows
	public static String doPost(String url , List<NameValuePair> params) {
		return post(url , params);
	}
	
}

然后,就可以调用 doPost()方法,来调用了。

先到这里,后面会有详细的学习。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值