请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

4回答

慕斯卡3530170 2020-04-15 00:01:13

谢谢已解决

1 回复 有任何疑惑可以回复我~
  • 可以把你的发出来下吗  JSONObject jsonObject = HttpUtils.httpRequest(url, "POST", param);这行报错 是不是缺少什么包没导入
    回复 有任何疑惑可以回复我~ 2020-04-16 15:36:12
翔仔 2020-04-14 00:29:57

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

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


0 回复 有任何疑惑可以回复我~
慕用6592966 2020-04-12 16:13:52

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

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 回复 有任何疑惑可以回复我~
慕斯卡3530170 2020-04-12 11:32:44

我也是


0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信