发送请求使用httpcomponents,官方网址是:http://hc.apache.org/
添加dependency
<!--发送http请求-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<!--json格式文件处理-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.59</version>
</dependency>
发送一个不带参数的get请求
package utils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
public class sendRequtestUtils {
public static void main(String[] args) throws IOException {
//定义HttpClient
CloseableHttpClient client = HttpClients.createDefault();
//创建get请求
HttpGet httpGet = new HttpGet("https://www.baidu.com/");
//执行get请求
CloseableHttpResponse response = client.execute(httpGet);
// 获取响应实体
HttpEntity responseEntity = response.getEntity();
//输出响应状态
System.out.println(response.getStatusLine());
//输出响应内容
System.out.println(EntityUtils.toString(responseEntity));
//释放资源
client.close();
response.close();
}
}
执行结果如下:
给请求添加报文头
package utils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.net.URI;
public class sendRequtestUtils {
public static void main(String[] args) throws IOException {
//定义HttpClient
CloseableHttpClient client = HttpClients.createDefault();
//创建get请求
HttpGet httpGet = new HttpGet();
httpGet.setURI(URI.create("https://www.baidu.com/"));
httpGet.setHeader("Accept", "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
httpGet.setHeader("Accept-Encoding", "gzip, deflate");
httpGet.setHeader("Accept-Language", "zh-cn,zh;q=0.5");
//执行get请求
CloseableHttpResponse response = client.execute(httpGet);
// 获取响应实体
HttpEntity responseEntity = response.getEntity();
//输出响应状态
System.out.println(response.getStatusLine());
//输出响应内容
System.out.println(EntityUtils.toString(responseEntity));
//释放资源
client.close();
response.close();
}
}
发送一个带参数的get请求
package utils;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
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 java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
public class sendGetRequest {
private static String MAX_TALK_URI = "http://....search"; //此处使用自己的uri
public static void main(String[] args) throws IOException, URISyntaxException {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("keyword",""));
params.add(new BasicNameValuePair("page","1"));
params.add(new BasicNameValuePair("size","10"));
System.out.println(params);
//定义HttpClient
CloseableHttpClient client = HttpClients.createDefault();
//创建get请求
URIBuilder urlBuilder = new URIBuilder(MAX_TALK_URI);
urlBuilder.setParameters(params);
HttpGet httpGet = new HttpGet(urlBuilder.build());
httpGet.setHeader("Accept", "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
httpGet.setHeader("Accept-Encoding", "gzip, deflate");
httpGet.setHeader("Accept-Language", "zh-cn,zh;q=0.9");
httpGet.setHeader("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36");
httpGet.setHeader("Accept","application/json, text/plain, */*");
httpGet.setHeader("Content-Type","application/json;charset=UTF-8");
//执行get请求
CloseableHttpResponse response = client.execute(httpGet);
// 获取响应实体
HttpEntity responseEntity = response.getEntity();
//输出响应状态
System.out.println(response.getStatusLine());
//输出响应内容
System.out.println(EntityUtils.toString(responseEntity));
//释放资源
client.close();
response.close();
}
}