java学习- 发送http请求

发送请求使用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();

    }
}

发布了108 篇原创文章 · 获赞 10 · 访问量 9696

猜你喜欢

转载自blog.csdn.net/liying15/article/details/99689524