远程调用---HttpClient入门

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

简介:

HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。

使用方法:

1.创建客户端CloseableHttpClient

2.创建请求方法的实例,并指定URL

    如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。

3.如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数,可以通过setHeader("content-type","application/json;charset=utf-8")方法来设置请求参数类型为JSON类型,

4.发送请求,调用HttpClient.execute(请求实例的对象),返回的是一个Response对象

5.调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;

    调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容.程序可通过该对象获取服务器的响应内容

6.释放资源     无论执行方法是否成功,都必须释放连接.

 

GET请求实例

@Test
public void testDemo01(){
    try {
        //1 创建Httpclient对象,相当于打开了浏览器
        CloseableHttpClient httpClient = HttpClients.createDefault();

        //2 确定请求方式和请求路径,相当于在浏览器输入地址
        HttpGet httpGet = new HttpGet("http://localhost:9090/user");

        //3 执行请求并获取响应,相当于敲完地址后按下回车。
        CloseableHttpResponse response = httpClient.execute(httpGet);
        // 4 判断状态码是否为200 
        if(response.getStatusLine().getStatusCode() == 200){
            // 5 获得响应体内容
            String str = EntityUtils.toString(response.getEntity());
            System.out.println(str);
        }
        response.close();
        httpClient.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

 

 

POST请求实例


public User  Testlogin(User user){
        CloseableHttpClient httpClient= null;
        CloseableHttpResponse response = null;
        try {
             //1.创建客户端 HttpClient
            httpClient = HttpClients.createDefault();
            //2.创建post请求实例
            HttpPost httpPost = new  HttpPost("http://localhost:9090/user/login");
            //2.1 设置请求类型为json类型
            httpPost.setHeader("content-type","application/json;charset=utf-8");
            //2.2 设置请求参数(请求体)
            String str = JSON.toJSONString(user);
            httpPost.setEntity(new StringEntity(str,"utf-8"));
            //3.发送请求
            response = httpClient.execute(httpPost);

            //4.判断响应状态码为200
            if(response.getStatusLine().getStatusCode() == 200){
                //5.获取响应体内容
                String string = EntityUtils.toString(response.getEntity());

                User loginUser  = JSON.parseObject(string,User.class);
                return loginUser;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                //6.释放资源
                response.close();
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

 

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看