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));

 

posted @   枫树湾河桥  阅读(652)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-03-02 SpringBoot浏览器直接访问html
Live2D
欢迎阅读『get请求带body的formdata非json实现AsyncHttpClient解决』
哥伦布
14:09发布
哥伦布
14:09发布
7°
南风
3级
空气质量
相对湿度
40%
今天
中雨
3°/15°
周三
中雨
3°/14°
周四
小雪
-1°/6°
点击右上角即可分享
微信分享提示