Java Http GET POST 请求

GET  请求

public static String doGet(){
        // 获取连接客户端工具
        CloseableHttpClient httpClient = HttpClients.createDefault();

        String entityStr = null;
        CloseableHttpResponse response = null;

        try {
            /*
             * 由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数
             */
            URIBuilder uriBuilder = new URIBuilder("http://localhost:8088/api/vi/user/findUser");
            /** 第一种添加参数的形式 */
            uriBuilder.addParameter("name", "root");
            //uriBuilder.addParameter("id", "123456");
//            /** 第二种添加参数的形式 */
//            List<NameValuePair> list = new LinkedList<>();
//            BasicNameValuePair param1 = new BasicNameValuePair("name", "root");
//            BasicNameValuePair param2 = new BasicNameValuePair("id", "123456");
//            list.add(param1);
//            list.add(param2);
//            uriBuilder.setParameters(list);

            // 根据带参数的URI对象构建GET请求对象
            HttpGet httpGet = new HttpGet(uriBuilder.build());
            //后台获取参数
//            @GetMapping("/findUser")
//            public List<User> findUser(@RequestParam(name = "name") String name) {
//            }

            //HttpPost httpPost = new HttpPost(uriBuilder.build());

            /*
             * 添加请求头信息
             */
            // 浏览器表示
            httpGet.addHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)");
            // 传输的类型
            httpGet.addHeader("Content-Type", "application/x-www-form-urlencoded");

            // 执行请求
            response = httpClient.execute(httpGet);
            // 获得响应的实体对象
            HttpEntity entity = response.getEntity();
            // 使用Apache提供的工具类进行转换成字符串
            entityStr = EntityUtils.toString(entity, "UTF-8");
        } catch (ClientProtocolException e) {
            System.err.println("Http协议出现问题");
            e.printStackTrace();
        } catch (ParseException e) {
            System.err.println("解析错误");
            e.printStackTrace();
        } catch (URISyntaxException e) {
            System.err.println("URI解析异常");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("IO异常");
            e.printStackTrace();
        } finally {
            // 释放连接
            if (null != response) {
                try {
                    response.close();
                    httpClient.close();
                } catch (IOException e) {
                    System.err.println("释放连接出错");
                    e.printStackTrace();
                }
            }
        }

        // 打印响应内容
        System.out.println(entityStr);
        return entityStr;
    }

POST 请求

public static String doPost(){
        // 获取连接客户端工具
        CloseableHttpClient httpClient = HttpClients.createDefault();

        String entityStr = null;
        CloseableHttpResponse response = null;

        try {

            // 创建POST请求对象
            HttpPost httpPost = new HttpPost("http://localhost:8088/api/vi/user/queryUser");

            /*
             * 添加请求参数
             */
            // 创建请求参数
//            List<NameValuePair> list = new LinkedList<>();
//            BasicNameValuePair param1 = new BasicNameValuePair("name", null);
//            BasicNameValuePair param2 = new BasicNameValuePair("id", "1");
//            list.add(param1);
//            list.add(param2);
//            // 使用URL实体转换工具
//            UrlEncodedFormEntity entityParam = new UrlEncodedFormEntity(list, "UTF-8");

            User user = new User();
            user.setId(1L);
            user.setName(null);
            String jsonString = JSONObject.fromObject(user).toString();
            httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));


            //后台获取参数
//            @PostMapping(value = "/queryUser", produces = "application/json")
//            public List<User> queryUser(@RequestBody User user) {
//                return userService.queryUser(user);
//            }


            /*
             * 添加请求头信息
             */
            // 浏览器表示
            httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)");
            // 传输的类型
            //httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
            httpPost.addHeader("Content-type", "application/json; charset=utf-8");

            // 执行请求
            response = httpClient.execute(httpPost);
            // 获得响应的实体对象
            HttpEntity entity = response.getEntity();
            // 使用Apache提供的工具类进行转换成字符串
            entityStr = EntityUtils.toString(entity, "UTF-8");

            //转成具体的java对象
            //BeiShengResult beiShengResult = (BeiShengResult) JSONObject.toBean(JSONObject.fromObject(entityStr), BeiShengResult.class);
            // System.out.println(Arrays.toString(response.getAllHeaders()));

            //Object data = JSONObject.fromObject(entityStr).get("data");
            //转成List
            //List<User> userList = JSONArray.parseArray(list.toString(), User.class);
        } catch (ClientProtocolException e) {
            System.err.println("Http协议出现问题");
            e.printStackTrace();
        } catch (ParseException e) {
            System.err.println("解析错误");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("IO异常");
            e.printStackTrace();
        } finally {
            // 释放连接
            if (null != response) {
                try {
                    response.close();
                    httpClient.close();
                } catch (IOException e) {
                    System.err.println("释放连接出错");
                    e.printStackTrace();
                }
            }
        }

        // 打印响应内容
        System.out.println(entityStr);
        return entityStr;
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值