• get请求带body的formdata非json实现AsyncHttpClient解决


    最近项目遇到get请求带body的formdata情况,百度了一下只有json的解决方案,没有formdata的,看了AsyncHttpClient相关源码,把json的解决方案修改了下成功了记录下

     <dependency>
              <groupId>org.asynchttpclient</groupId>
                <artifactId>async-http-client</artifactId>
                <version>2.2.0</version>
                </dependency>
    /**
         * 执行异步HTTP请求
         */
        public String asyncRequest(String url,List<Part> params) {
            AsyncHttpClient c = new DefaultAsyncHttpClient();
            Future<Response> f = c.prepareGet(url).setBodyParts(
                    params)
                    .addHeader("authorization",TokenManager.getToken())
                    .execute(new AsyncCompletionHandler<Response>() {
                        @Override
                        public Response onCompleted(Response response) {
                            return response;
                        }
    
                        @Override
                        public void onThrowable(Throwable t) {
                            throw new RuntimeException("exception");
                        }
                    });
            Response response=null;
            try {
                long startTime = System.currentTimeMillis();
                while (true){
                    response = f.get();
                    if(response!=null){
                        break;
                    }else {
                        long endTime = System.currentTimeMillis();
                        // 大于8秒认为查询数据失败
                        if((endTime-startTime)/1000>8){
                            throw new RuntimeException("exception");
                        }
                    }
                }
            } catch (Exception e) {
                logger.error("数据异常");
            }
            return response==null?"":response.getResponseBody();
        }
    List<Part> params = new ArrayList<>();
           
            params.add(new StringPart("startTime",startTime));
            params.add(new StringPart("endTime",endTime));
  • 相关阅读:
    PHP jquery结合HTML5鼠标拖选头像图片并上传
    HTML5 CSS3 SwitchButton 自定义Radio风格
    IE浏览器在虚拟机中无法正常显示字符
    jQuery在updatepanel中使用造成内存泄露
    bootstrap下拉列表重置联动
    bootstrap正则表达式验证手机 座机 邮箱
    bootstrap重置校验方法
    分页
    函数解一元二次方程
    集合
  • 原文地址:https://www.cnblogs.com/fswhq/p/15951112.html
Copyright © 2020-2023  润新知