HttpClient使用简介说明
转自:
http://www.java265.com/JavaCourse/202204/2933.html
下文笔者将采用最简单的示例讲述HttpClient的使用,如下所示
HttpClient的使用流程
1. 创建HttpClient对象
2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象
3. 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数
4. 调用HttpClient对象的execute(HttpUriRequest request)发送请求,
该方法返回一个HttpResponse
5. 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头
调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容
程序可通过该对象获取服务器的响应内容
6. 释放连接。无论执行方法是否成功,都必须释放连接
HttpClient涉及jar包
commons-cli-1.2.jar commons-codec-1.9.jar commons-logging-1.2.jar fluent-hc-4.5.1.jar httpclient-4.5.1.jar httpclient-cache-4.5.1.jar httpclient-win-4.5.1.jar httpcore-4.4.3.jar httpcore-ab-4.4.3.jar httpcore-nio-4.4.3.jar httpmime-4.5.1.jar jna-4.1.0.jar jna-platform-4.1.0.jar
HttpClient示例
package com.java265;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
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.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
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 HttpClientTest {
public static void main(String[] args) throws Exception{
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("account", ""));
formparams.add(new BasicNameValuePair("password", ""));
HttpEntity reqEntity = new UrlEncodedFormEntity(formparams, "utf-8");
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)//一、连接超时:connectionTimeout-->指的是连接一个url的连接等待时间
.setSocketTimeout(5000)// 二、读取数据超时:SocketTimeout-->指的是连接上一个url,获取response的返回等待时间
.setConnectionRequestTimeout(5000)
.build();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://java265.com/index.html");
post.setEntity(reqEntity);
post.setConfig(requestConfig);
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = response.getEntity();
String message = EntityUtils.toString(resEntity, "utf-8");
System.out.println(message);
} else {
System.out.println("请求失败");
}
}
}


