请稍等 ...
×

采纳答案成功!

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

2021.6.1短链接成功办法看这里

用翔仔老师提供的网站申请一下短链接的API:https://xiaomark.com/dashboard/a-domain/setting
获得apikey
可以参考我的代码:
记得提前加入fastjson的pom依赖

package com.imooc.o2o.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

//需要在pom.xml引入以下依赖
/**
 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.45</version>
 </dependency>
 **/
/**
 *
 * 使用xiaomark的短链接服务生成短链接
 *
 */

public class ShortNetAddressUtil {

    static String actionUrl = "https://api.xiaomark.com/v1/link/create";

    static String APIKEY = "你自己的APIKEY";



    public static void main(String[] args) {
        String longUrl = "https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&announce_id=11615366683l3hgk&version=63010043&lang=zh_CN&token=";
        System.out.println(getShortURL(longUrl));

    }

    @SuppressWarnings("deprecation")
    public static String getShortURL(String longUrl) {
        //longUrl = java.net.URLEncoder.encode(longUrl);  xiaomark不需要处理原网址
        //传好json数据
        String apikey = APIKEY;
        JSONObject param = new JSONObject();
        param.put("apikey",apikey);
        param.put("origin_url",longUrl);
        //利用RestTemplate进行第三方接口的调用
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        //设置超时时间30s
        requestFactory.setConnectTimeout(30*1000);
        requestFactory.setReadTimeout(30*1000);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        ResponseEntity<JSONObject> jsonObjectResponseEntity = restTemplate.postForEntity(actionUrl,param,JSONObject.class);
       //将得到的json对象的body部分进行处理
        JSONObject json = jsonObjectResponseEntity.getBody();
        if (json == null) {
            return "";
        }
        //读取多层嵌套的json数据
        return json.getJSONObject("data").getJSONObject("link").getString("url");
    }
}

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

3回答

慕妹1025182 2022-04-23 05:32:02

你好同学,我采用你的代码,在xiaomark上申请了apikey,但是报Exception in thread "main" org.springframework.web.client.HttpClientErrorException$Forbidden: 403 FORBIDDEN: "{"code":13,"data":{},"message":"\u8df3\u8f6c\u94fe\u63a5\u7684\u57df\u540d\u4e0d\u5728\u767d\u540d\u5355\u4e4b\u5185"}<EOL>"

请问是什么原因?谢谢

0 回复 有任何疑惑可以回复我~
慕沐1441344 2021-06-07 15:36:05

非常感谢!

0 回复 有任何疑惑可以回复我~
翔仔 2021-06-01 23:51:30

特别感谢同学的分享,赞:)

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信