短链接接口失效请问如何解决

来源:14-13 店铺授权之添加授权的编码实现

慕函数4495222

2020-04-12

用的老师源码的代码user dose not have resource to register long term short url

写回答

4回答

慕斯卡3530170

2020-04-15

谢谢已解决

1
1
大尾鲈鳗100
可以把你的发出来下吗 JSONObject jsonObject = HttpUtils.httpRequest(url, "POST", param);这行报错 是不是缺少什么包没导入
2020-04-16
共1条回复

翔仔

2020-04-14

同学好,可以参考我的最终源码里面的短链接使用方式,因为百度升级成2.0的短链接了,原来的方式不支持了,这个是一个不好的设计,应该支持才对。可以参照源码去改并且去百度短链接申请一个token即可

https://git.imooc.com/coding-144/coding-144/src/master/springbooto2o/src/main/java/com/imooc/o2o/util/ShortNetAddressUtil.java


0
0

慕用6592966

2020-04-12

可以改用微信短链接,我的代码如下:

public class ShortNetAddressUtil {
    static String appid = "你的appid";
    static String appsrcret = "你的appsrcret";

    public static void main(String[] args) {
        String longUrl = "https://baidu.com";
        System.out.println(getShortURL(longUrl));

    }

    /**
     * 微信根据APPID和APPSECRET获取token
     *
     * @param appid
     * @param appsrcret
     * @return 返回转换后的短链接
     */
    public static String getToken(String appid, String appsrcret) throws Exception {
        // 访问地址
        String TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
        String APPID = appid;
        String APPSECRET = appsrcret;
        String request_url = TOKEN_URL.replace("APPID", APPID).replace("APPSECRET", APPSECRET);
        JSONObject jsonObject = HttpUtils.httpsUtil(request_url, "GET", null);
        if (null != jsonObject) {
            String access_token = jsonObject.getString("access_token");
            return access_token;
        }
        return null;
    }

    /**
     * 将长链接转为短链接(调用的微信短网址API) 需要token
     *
     * @param longUrl   需要转换的长链接url
     * @param appid
     * @param appsrcret
     * @return 返回转换后的短链接
     */
    public static String getShortURL(String longUrl) {
        ResultBean<String> result = new ResultBean<>();
        String token;
        try {
            token = getToken(appid, appsrcret);
            String uri = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN";
            String url = uri.replace("ACCESS_TOKEN", token);
            String param = "{\"action\":\"long2short\"," + "\"long_url\":\"" + longUrl + "\"}";
            // 调用接口创建菜单
            JSONObject jsonObject = HttpUtils.httpRequest(url, "POST", param);
            System.out.println(jsonObject);
            if (null != jsonObject) {
                result.setCode(jsonObject.getInteger("errcode"));
                result.setData(jsonObject.getString("short_url"));
                return result.getData();
            } else {
                return null;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

}

0
1
慕码人7211748
请问要导入什么包
2020-04-30
共1条回复

慕斯卡3530170

2020-04-12

我也是


0
2
慕码人7211748
回复
大尾鲈鳗100
https://blog.csdn.net/ajklaclk/article/details/79950680
2020-04-30
共2条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程