远程调用---HttpClient入门
  TEZNKK3IfmPf 2023年11月14日 16 0

简介:

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;
    }
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

TEZNKK3IfmPf