使用cn.hutool.http请求第三方数据

一:
* 第三方授权
* 得到第三方token和Expires(过期时间)

说明:请求第三方数据时,需要授权。第三方会给到appid和secret,请求携带appid和secret获取一个token和expires,又了token就又了操作第三方数据的权限。每次操作第三方数据时就需要携带token。

maven坐标

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.6.5</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>
        Map<String, Object> params = new HashMap<>();
        params.put("appid", authProperties.getAppid());
        params.put("secret", authProperties.getSecret());
        log.info("AuthUtils.得到配置文件appid和secret");
        log.info("appid===:{}", authProperties.getAppid());
        log.info("secret===:{}", authProperties.getSecret());
        log.info("auth地址===:{}", ipUtil.getOip() + "/auth/token");
        String str = HttpRequest.post("183.xxx.xxx.xx:9981" + "/auth/token?appid="+authProperties.getAppid()+"&secret="+authProperties.getSecret())
                .timeout(500)//超时,毫秒
                .execute().body();                                                                     
        log.info("调用第三方auth传回的json数据{}",str);
        JSONObject jsonObject = JSON.parseObject(str);
        JSONObject data = jsonObject.getJSONObject("data");
        String token = data.get("token").toString();
        String expires = data.get("expires").toString();
        System.out.println(token);

 

 

二:

发送数据给第三方,请求头放入token,才能权限请求。

        Map<String, Object> params = new HashMap<>();
        params.put("userName","小明");
        params.put("userIDcard","123123");
        params.put("userSeat","3");
        JSONObject data = new JSONObject(params);
        String s = HttpRequest.post(ipUtil.getOip() + "/wer/tte/wrt/pickUpData")
                .header("token","0d173774b9274ed9883b17xxxxx")
                .contentType("application/json")
                .body(data.toJSONString())
                .timeout(20000)//超时,毫秒
                .execute().body();
        System.out.println("s"+"===>"+s);
        JSONObject jsonObject = JSON.parseObject(s);
        log.info("code:{}",jsonObject.get("code"));

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cn.hutool.http.HttpException: read timed out 是 HTTP 请求超时的异常。当使用 Hutool 进行 HTTP 请求时,如果在规定的时间内未能读取到服务器的响应,就会抛出该异常。 造成 read timed out 异常的原因可能有以下几种: 1. 网络不稳定:可能是由于网络延迟或者网络不稳定导致的请求超时。可以尝试重新连接网络或者更换网络环境。 2. 服务器响应时间过长:如果服务器处理请求的时间过长,导致超过了默认的超时时间,就会出现 read timed out 异常。可以尝试增加超时时间,或者联系服务器管理员优化响应时间。 3. 请求过于频繁:如果在短时间内发送大量的请求,服务器可能无法及时处理,也会导致请求超时。可以适当调整请求频率,避免过于频繁地发送请求。 4. 请求过大:如果请求数据量过大,可能会导致服务器响应时间增加,从而超过了超时时间。可以尝试减小请求数据量,或者使用分片上传的方式进行大文件的传输。 解决 read timed out 异常的方法有以下几种: 1. 增加超时时间:可以通过设置超时时间来延长等待服务器响应的时间。在 Hutool 中可以使用 `Request.setConnectionTimeout(int)` 来设置连接超时时间,使用 `Request.setTimeout(int)` 来设置读取超时时间。 2. 检查网络连接:确保网络连接稳定。可以尝试重新连接网络或者更换网络环境。 3. 优化请求频率:如果是因为请求过于频繁导致的异常,可以适当减少请求的频率。 4. 减小请求数据量:如果请求数据量过大,可以尝试减小请求数据量,或者使用分片上传的方式进行大文件的传输。 总之,解决 cn.hutool.http.HttpException: read timed out 异常的方法是通过设置适当的超时时间,优化网络连接和请求参数等方式来避免请求超时。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值