调用百度短网址API接口进行短网址的转换(Java程序的实现)

1、功能说明:把需要给用户发的短信:

您周围已有39位同行入驻买卖网, 生存危机一触即发,买卖网流量不容错过,即刻享受流水0抽成!详情查看:http://baidu.com/?ch=mt&mId=jU5LVV 回复TD退订";中的url转换为短网址形式,转换后短信内容为:"您周围已有39位同行入驻买卖网, 生存危机一触即发,买卖网流量不容错过,即刻享受流水0抽成!详情查看:http://dwz.cn/5pHynG 回复TD退订"

2、现实思路:首先将短信内容中的url提取出来,然后调用短网址接口,将该url转换为短网址,最后将转换后的短网址url替换原来短信内容中的url;

3、Java程序如下:(需要导入阿里的json包:fastjson-1.1.28.jar)


通过http post方式实现:

package shortUrl;

import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sf.json.JSONObject;

import org.apache.http.client.fluent.Content;
import org.apache.http.client.fluent.Form;
import org.apache.http.client.fluent.Request;

/**
 * 
 * 短网址转换类 
 * 
 */
public class GenerateShortUrl {
	private static String url =  "http://dwz.cn/create.php";

	// 短网址转换的post请求体
	private static String generateShortUrl(String oldUrl) {
		try {
			Content resp = Request
					.Post(url)
					.bodyForm(
							Form.form()
							.add("url", oldUrl)
							.build(),
							Charset.forName("UTF-8")).execute().returnContent();
			String respString = resp.asString();
            System.out.println(respString); 
			JSONObject jsonObject = JSONObject.fromObject(respString); 
			oldUrl = jsonObject.getString("tinyurl");
			
			//JSONObject object = JSON.parseObject(respString);
			//System.out.println(object);			
			//oldUrl = object.getString("tinyurl");
			
			return oldUrl;
			
		} catch (Exception e) {
			return oldUrl;
		}
				
	}

	/**
	 * 短网址转换入口函数
	 * 
	 */
	public static void main(String[] args) {
		
		String strBody = "您周围已有39位同行入驻买卖网, 生存危机一触即发,买卖网流量不容错过,即刻享受流水0抽成!详情查看:http://baidu.com/?ch=mt&mId=jU5LVV 回复TD退订";
		
		 Pattern pattern = Pattern.compile("(http://[/\\.\\w\\?=&-]+)");
	        Matcher matcher = pattern.matcher(strBody);
	        String oldUrl = null;
	        while (matcher.find()) {
	        	oldUrl = matcher.group();
	        }
	        //要转换的url为空或者长度小于20不进行转换
			if (null == oldUrl || oldUrl.length() <= 20 ){
				System.out.println(oldUrl);
			}
	        System.out.println(oldUrl);
			String shortUrl = generateShortUrl(oldUrl);
			System.out.println(shortUrl);
			String newStrBody = strBody.replaceAll("(?is)(?


输出结果:

http://baidu.com/?ch=mt&mId=jU5LVV

{"tinyurl":"http:\/\/dwz.cn\/5pHynG","status":0,"longurl":"http://baidu.com/?ch=mt&mId=jU5LVV","err_msg":""}

http://dwz.cn/5pHynG

您周围已有39位同行入驻买卖网, 生存危机一触即发,百度流量不容错过,即刻享受流水0抽成!详情查看:http://dwz.cn/5pHynG 回复TD退订



你可能感兴趣的:(java)