新浪短链接传递多个参数的正确写法

使用新浪短链接有多个参数一定要注意将&符号写成%26,不然你传递的参数&符号开始的部分会丢失。如www.baidu.com?a=1&b=2 生成短链接后,打开的url只会是www.baidu.com?a=1,如果你要传递上面2个参数那么就要这样写www.baidu.com?a=1%26b=2


/**
 * 新浪短链接生成工具
 * @author fanx
 * @date 2018/11/07
 *
 */
public class URLShortLinkTool {
	private static String access_token = "你的access_token";
	
	/**短网址生成URL*/
	public static final String SHORT_URL_GENERATION = "http://api.t.sina.com.cn/short_url/shorten.json?source=%s&url_long=%s";
	
	
	/**
	 * 短链接生成
	 * @param url 	长链接
	 * @return 		短链接
	 */
	public static String generate(String url){
		String request_url = String.format(SHORT_URL_GENERATION, URLShortLinkTool.access_token, url);
		List<URLShortLinkTool.UrlVO> urlVOs = GsonUtil.getGson().fromJson(HttpRequest.sendGet(request_url)
				, new TypeToken<ArrayList<URLShortLinkTool.UrlVO>>(){}.getType());
		return urlVOs.get(0).getUrl_short();
	}
	
	public static void main(String[] args) {
		// 如果你要传递多个参数需要将&转义%26,不然后面&符号的参数会丢失
		System.out.println(URLShortLinkTool.generate("http://你的页面url?trainno=111" 
		+ "%26type=PQ"));
	}
	
	/**
	 * 返回值接收类
	 * @author fanx
	 * @date 2018/11/07
	 */
	static class UrlVO {
		private String url_long;	//	原始长链接
		private String url_short;	//	短链接
		private String type;		//	链接的类型,0:普通网页、1:视频、2:音乐、3:活动、5、投票
		private String result;
		
		public String getUrl_long() {
			return url_long;
		}
		public void setUrl_long(String url_long) {
			this.url_long = url_long;
		}
		public String getUrl_short() {
			return url_short;
		}
		public void setUrl_short(String url_short) {
			this.url_short = url_short;
		}
		public String getType() {
			return type;
		}
		public void setType(String type) {
			this.type = type;
		}
		public String getResult() {
			return result;
		}
		public void setResult(String result) {
			this.result = result;
		}
		
	}
	
}
/**
 * 序列化工具
 * @author fanx
 *
 */
public class GsonUtil {
	
	/**
	 * 获得gson对象
	 * @return
	 */
	public static Gson getGson(){
		Gson gson = new Gson();
		return gson;
	}
	
	/**
	 * 打印对象属性(这里我主要用于文本日志)
	 * @param object
	 * @return
	 */
	public static String getJsonData(Object object){
		Gson gson = new Gson(); 
		return gson.toJson(object).replace("\\","");
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值