最简单的Httpclient实现get请求

最近在学习用Httpclient实现get请求,网上有很多比较细致的方法,这里我做了调整,实现最简单的方式,方便我这种不会代码的小白一点点理解吧。先从基础的开始,再往深度扩展。

pom文件中导入httpclient依赖

org.apache.httpcomponents
httpclient
4.5.2

最简单的Httpclient实现get请求_第1张图片
简单来说,用HttpClient发送请求、接收响应都很简单,只需要五大步骤即可:(要牢记)

1.创建代表客户端的HttpClient对象。
2.创建代表请求的对象,如果需要发送GET请求,则创建HttpGet对象,如果需要发送POST请求,则创建HttpPost对象。注:对于发送请求的参数,GET和POST使用的方式不同,GET方式可以使用拼接字符串的方式,把参数拼接在URL结尾;POST方式需要使用setEntity(HttpEntity entity)方法来设置请求参数。
3.调用HttpClient对象的execute(HttpUriRequest request)发送请求,执行该方法后,将获得服务器返回的HttpResponse对象。服务器发还给我们的数据就在这个HttpResponse相应当中。调用HttpResponse的对应方法获取服务器的响应头、响应内容等。
4.检查相应状态是否正常。服务器发给客户端的相应,有一个相应码:相应码为200,正常;相应码为404,客户端错误;相应码为505,服务器端错误。
5.获得相应对象当中的数据

public class HttpclientGet {
@Test
public static void doget() {
String result = null;
String url = “http://gateway.tst.idc.cedu.cn/svc/api/cpb/v1/teacher/privilege_list?city_id=4”;//参数直接拼接到URL后
CloseableHttpClient httpClient = HttpClientBuilder.create().build();//创建 HttpClient 的实例
CloseableHttpResponse response = null;

    try {
        HttpGet httpGet = new HttpGet(url.toString());//发送请求
        response = httpClient.execute(httpGet);//接收返回
        int statusCode = response.getStatusLine().getStatusCode();
        if (response != null && statusCode == HttpStatus.SC_OK) {
            HttpEntity entity = response.getEntity();//获取结果实体
            result = EntityUtils.toString(entity, "UTF-8");
            System.out.println("result===" + result);
        }

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            httpClient.close();
            if (response != null) {
                response.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
}

}

你可能感兴趣的:(Java)