文档章节

HttpClient(用CloseableHttpClient发送get/post请求)

o
 osc_isezqdgg
发布于 2019/09/18 15:37
字数 261
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

//get请求
private
String testGet() {
       //创建 CloseableHttpClient CloseableHttpClient httpClient
= HttpClients.createDefault(); CloseableHttpResponse response = null; String result = null; try { URIBuilder uri = new URIBuilder("请求路径"); //get请求带参数 List<NameValuePair> list = new LinkedList<>(); BasicNameValuePair param1 = new BasicNameValuePair("key1", "value1"); BasicNameValuePair param2 = new BasicNameValuePair("key2", "value2"); list.add(param1); list.add(param2); uri.setParameters(list); HttpGet httpGet = new HttpGet(uri.build());
         //设置请求状态参数 RequestConfig requestConfig
= RequestConfig.custom()
              .setConnectionRequestTimeout(3000) .setSocketTimeout(3000)
              .setConnectTimeout(3000).build(); httpGet.setConfig(requestConfig); response = httpClient.execute(httpGet); int status = response.getStatusLine().getStatusCode();//获取返回状态值 if (status == HttpStatus.SC_OK) {//请求成功 HttpEntity httpEntity = response.getEntity(); if(httpEntity != null){ result = EntityUtils.toString(httpEntity, "UTF-8"); EntityUtils.consume(httpEntity);//关闭资源
               JSONObject jsonResult = JSONObject.fromObject(result);
            // JSONObject如下格式

            /*{
                        "data ": [
                                  {
                                      "name": "*",
                                      "value": "*",
                                  }
                              ],
                              "success ": true
                     }*/
              JSONArray jsonArray = jsonResult.getJSONArray("data");
              for (int i = 0; i < jsonArray.size(); i++) {//只取一个值返回
                result = jsonArray.getJSONObject(i).getString("对应key")
              } return result; } } } catch (Exception e) { e.printStackTrace(); } finally { if(response != null){ try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if(httpClient != null){ try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }

 

//post请求
private void testPost(){
        HttpPost httpPost = new HttpPost("请求路径");
        CloseableHttpClient client = HttpClients.createDefault();
        List params = new ArrayList();
        params.add(new BasicNameValuePair("key1", "value1"));
        params.add(new BasicNameValuePair("key2", "value2"));
        try {
        HttpEntity httpEntity = new UrlEncodedFormEntity(params, "UTF-8");
        httpPost.setEntity(httpEntity);
        response = client.execute(httpPost);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           if(response != null){
               try {
                   response.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }
           if(client != null){
               try {
                   client.close();
               } catch (IOException e) {
                   e.printStackTrace();
               }
           }
        }
    }

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
HttpClient以及整合SpringBoot

一、HttpClient 1.1、 前台系统访问后台接口的方式 两个系统间如何互相访问?两个tomcat上的项目如何互相访问 1.2、 什么是HttpClient 官网:http://hc.apache.org/index.html 现在也叫:Htt...

Armymans
2018/11/10
0
0
httpclient的使用

参考 https://blog.csdn.net/weixin_40144050/article/details/78964741 1.1 Httpclient的使用 1.1.1 什么是httpclient HttpClient 是 Apache Jakarta Common下的子项目,用来提供高效的、最......

强子哥哥
2018/06/17
0
0
Httpclient

  今天给大家分享的是Httpclient,如有不足,敬请指教。 一、Httpclient简介 1.1 什么是httpclient HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支...

404--Not--Found
2019/05/07
147
0
Httpclient的使用

1.使用httpclient执行get请求 @Test public void doGet()throws Exception { //创建一个httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); //创建一个GET对象 ......

osc_gatdqtjj
2018/04/11
2
0
HttpClient类详解

文章链接:https://blog.csdn.net/justrydeng/article/details/81042379 HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访...

osc_cesboqi4
2019/08/22
1
0

没有更多内容

加载失败,请刷新页面

加载更多

博客园二次元主题——Sakura

碎碎念 嗯,时隔多久也记不清了,我又回来了,总算是忙里偷闲把这篇文章写出来,有人要过很多次我的博客园美化方案,但是实在是忙啊,也因为我的前台技术不好,代码bug很多,所以也有点不想把...

osc_2y6i16fz
刚刚
0
0
highcharts 自适应div的宽度

如果窗口变化时,highcharts图表是自带自适应的,但是切换折叠菜单时,highchats图表并不自适应外层div的宽度。如何实现适应div的宽度? 在网上找到有个 reflow 的方法,我是在项目中引入的 ...

tianyawhl
1分钟前
0
0
个人作业——软件工程实践总结&个人技术博客

这个作业属于哪个课程 2020春|S班 (福州大学) 这个作业要求在哪里 个人作业——软件工程实践总结&个人技术博客 这个作业的目标 回顾这门课程带来的提升、团队总结、实践中的经验总结、对下届...

osc_g032zryv
2分钟前
0
0
从封装变化的角度看设计模式——对象创建

封装变化之对象创建 在对象创建的过程中,经常会出现的一个问题就是通过显示地指定一个类来创建对象,从而导致紧耦合。这是因为创建对象时指定类名将使你受特定实现的约束而不是特定接口的约...

osc_r5t7sskd
3分钟前
0
0
从封装变化的角度看设计模式——对象创建

封装变化之对象创建 在对象创建的过程中,经常会出现的一个问题就是通过显示地指定一个类来创建对象,从而导致紧耦合。这是因为创建对象时指定类名将使你受特定实现的约束而不是特定接口的约...

osc_i5oyb1xr
4分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部