马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
转自:
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("请求失败");
- }
- }
-
- }
复制代码 |