【HttpClient详解】HttpClient的几种基本用法实例

骑猪看日落 2024-03-31 16:15 120阅读 0赞

package cn.zifangsky.httpclient;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.junit.Test;

/**
* 几个基本用法实例
* @author zifangsky
*
*/
public class Demo {

/**
* 测试GET请求
*/
@Test
public void get(){
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
//创建HttpGet
HttpGet httpGet = new HttpGet(“http://webmagic.io“);
System.out.println(“executing request: “ + httpGet.getURI());

//执行get请求
CloseableHttpResponse response = httpClient.execute(httpGet);

HttpEntity entity = response.getEntity();
System.out.println(“————————————-“);
//打印响应状态
System.out.println(“Status: “ + response.getStatusLine());
//打印Server
Header[] headers = response.getHeaders(“Server”);
if(headers != null && headers.length > 0){
System.out.println(“Server: “ + response.getHeaders(“Server”)[0].getValue());
}

if(entity != null){
//打印响应内容长度
System.out.println(“Response content length: “ + entity.getContentLength());

//打印响应内容
System.out.println(“Response content: “ + EntityUtils.toString(entity));
}

response.close();
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
}

}

/**
* 测试POST请求
*/
@Test
public void post(){
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
//创建HttpPost
HttpPost httpPost = new HttpPost(“http://xss.ooai.org/index.php?do=login&act=submit“);
//创建参数列表
List formParams = new ArrayList<>();
formParams.add(new BasicNameValuePair(“user”, “root123”));
formParams.add(new BasicNameValuePair(“pwd”, “1qaz2wsxcde3”));

UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(formParams,”UTF-8”);
httpPost.setEntity(formEntity);
System.out.println(“executing request: “ + httpPost.getURI());

//执行post请求
CloseableHttpResponse response = httpClient.execute(httpPost);

HttpEntity entity = response.getEntity();
System.out.println(“————————————-“);
//打印响应状态
System.out.println(“Status: “ + response.getStatusLine());
//打印Server
Header[] headers = response.getHeaders(“Server”);
if(headers != null && headers.length > 0){
System.out.println(“Server: “ + response.getFirstHeader(“Server”).getValue());
}

if(entity != null){
//打印响应内容长度
System.out.println(“Response content length: “ + entity.getContentLength());

//打印响应内容
System.out.println(“Response content: “ + EntityUtils.toString(entity));
}

response.close();
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 测试文件上传
*/
@Test
public void upload(){
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
//创建HttpPost
HttpPost httpPost = new HttpPost(“http://localhost:7080/Fileupload/upload.html“);
//创建参数列表
StringBody stringBody = new StringBody(“12345678”, ContentType.TEXT_PLAIN);

File picture = new File(“C:/Users/Administrator/Desktop/1111.png”);
HttpEntity reqEntity = MultipartEntityBuilder.create().addBinaryBody(“file”, picture).addPart(“userName”,stringBody).build();

httpPost.setEntity(reqEntity);
System.out.println(“executing request: “ + httpPost.getURI());

//执行post请求
CloseableHttpResponse response = httpClient.execute(httpPost);

HttpEntity entity = response.getEntity();
System.out.println(“————————————-“);
//打印响应状态
System.out.println(“Status: “ + response.getStatusLine());
//打印Server
Header[] headers = response.getHeaders(“Server”);
if(headers != null && headers.length > 0){
System.out.println(“Server: “ + response.getHeaders(“Server”)[0].getValue());
}

if(entity != null){
//打印响应内容长度
System.out.println(“Response content length: “ + entity.getContentLength());

//打印响应内容
System.out.println(“Response content: “ + EntityUtils.toString(entity));
}

response.close();
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}

发表评论

表情:
评论列表 (有 0 条评论,120人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HttpClient详解

    Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送H