长链接制作为短链接

前言

需要说明的是,这里使用的是微博提供的接口,也就是说,这个短链接是微博给我们提供的

在网络上到一个我们工具站

http://dwz.wailian.work/anonymous.php

QQ20181126-132204@2x

言归正传

微博开发平台APIhttp://open.weibo.com/wiki/2/short_url/shorten

1、调用接口(主要部分)


    public  static String  LongToShortLink (String longUrl) {

        String requestUrl = "http://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long=urlLongParam";
        requestUrl = requestUrl.replace("urlLongParam", longUrl);
        String body = HttpHelper.handleGet(requestUrl);
        if(body.contains("false")){
            log.error(body);
        }
        return body;
    }

2、Http请求类


import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

@Slf4j
public class HttpHelper {


    public static final String ENCODING_UTF8 = "UTF-8";
    public static final int OVERTIME = 2000;

    private static RequestConfig defaultRequestConfig(Integer over_time) {
        if (over_time == null) {
            return RequestConfig.custom().setSocketTimeout(OVERTIME).setConnectTimeout(OVERTIME).setConnectionRequestTimeout(OVERTIME).build();
        } else {
            return RequestConfig.custom().setSocketTimeout(over_time).setConnectTimeout(over_time).setConnectionRequestTimeout(over_time).build();
        }
    }


    /**
     * http 普通get请求
     *
     * @param uri
     * @return
     */
    public static String handleGet(String uri) {
        CloseableHttpClient httpclient = HttpClients.custom().build();
        HttpGet request = null;
        HttpResponse response = null;
        String result = null ;
        try {
            request = new HttpGet(uri);
            request.setConfig(defaultRequestConfig(null));
            response = httpclient.execute(request);
            result = IOUtils.toString(response.getEntity().getContent(), ENCODING_UTF8);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        } finally {
            IOUtils.closeQuietly(httpclient);
        }
        return result;

    }

}

3、main方法调用

import com.hlj.linktoshort.data.ShortLinkResult;
import com.hlj.linktoshort.utils.JsonUtils;
import com.hlj.linktoshort.utils.LinkUtils;
import com.hlj.linktoshort.utils.QrCodeUtils;
import lombok.extern.slf4j.Slf4j;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 类描述: 长连接转短链接
 *
 * http://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long=http://www.cnblogs.com
 */
@Slf4j
public class StartMain {


    public static void main(String[] args) {

        String longUrl = "" +
                "https://blog.csdn.net/u012954706"
                ;

        String sourceName = "origin.jpeg" ;




        String sourceFilePath = "/Users/healerjean/Desktop/"+sourceName;
        String saveFilePath = "/Users/healerjean/Desktop/A"+sourceName+".png";

        String shortLink =  LinkUtils.LongToShortLink(longUrl);
        ShortLinkResult shortLinkResult = JsonUtils.toObject(shortLink,ShortLinkResult.class );
        log.info("\n短链接:"+shortLinkResult.getUrls().get(0).getUrl_short()+"\n长链接:"+shortLinkResult.getUrls().get(0).getUrl_long());
    }

4、实体类

package com.hlj.linktoshort.data;

import java.util.List;

/**
 * 作者 :HealerJean
 * 日期 :2018/11/23  上午11:37.
 * 类描述:
 */
public class ShortLinkResult {

    private List<UrlsBean> urls;

    public List<UrlsBean> getUrls() {
        return urls;
    }

    public void setUrls(List<UrlsBean> urls) {
        this.urls = urls;
    }

    public static class UrlsBean {
        /**
         * result : true
         * url_short : http://t.cn/h5FGy
         * url_long : http://www.cnblogs.com
         * object_type :
         * type : 0
         * object_id :
         */

        private boolean result;
        private String url_short;
        private String url_long;
        private String object_type;
        private int type;
        private String object_id;

        public boolean isResult() {
            return result;
        }

        public void setResult(boolean result) {
            this.result = result;
        }

        public String getUrl_short() {
            return url_short;
        }

        public void setUrl_short(String url_short) {
            this.url_short = url_short;
        }

        public String getUrl_long() {
            return url_long;
        }

        public void setUrl_long(String url_long) {
            this.url_long = url_long;
        }

        public String getObject_type() {
            return object_type;
        }

        public void setObject_type(String object_type) {
            this.object_type = object_type;
        }

        public int getType() {
            return type;
        }

        public void setType(int type) {
            this.type = type;
        }

        public String getObject_id() {
            return object_id;
        }

        public void setObject_id(String object_id) {
            this.object_id = object_id;
        }
    }
}

ContactAuthor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值