记得很久之前好像学习过一次,但是当时没有什么网络开发的基础,经验,也没有深入学习。
后来接触到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()方法,来调用了。
先到这里,后面会有详细的学习。