使用短网址服务--百度的短网址API

直接贴代码吧,依赖包有apache的httpclient,可以在apache.org下http components下下载(这个包需要apache的commons logging的包才能运行,囧!)
package net.test.aaron;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class ShortUrlTest {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws ClientProtocolException 
	 */
	public static void main(String[] args) throws ClientProtocolException, IOException {
		List<NameValuePair> formparams = new ArrayList<NameValuePair>();
		formparams.add(new BasicNameValuePair("url", "http://www.udrop.net/s/0/4/4/1S1lCnwx17AP17KPC6-M1S16yA==?m=1367116329454"));
		UrlEncodedFormEntity reqentity = new UrlEncodedFormEntity(formparams, "UTF-8");
		
		HttpPost httppost = new HttpPost("http://dwz.cn/create.php?url=");
		
		HttpClient httpclient = new DefaultHttpClient();
		httppost.setEntity(reqentity);
		HttpResponse response = httpclient.execute(httppost);
		HttpEntity respentity = response.getEntity();
		if (respentity != null) {
		    /*if (len != -1 && len < 2048) {
		        System.out.println(EntityUtils.toString(entity));
		    } else {
		        // Stream content out
		    }*/
			InputStream instream = null;
		    try {
		        // do something useful
			    //instream = entity.getContent();
		        System.out.println(EntityUtils.toString(respentity, "UTF-8"));
			    //long len = entity.getContentLength();
		    } finally {
		        //instream.close();
		    }
		}
	}

}
有个问题,我在测试环境下,host是一个内网IP加上一个端口号,会提示这个URL不安全,返回错误!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以使用百度网址API来生成链接。以下是Java代码示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class BaiduShortUrl { public static void main(String[] args) { String longUrl = "http://www.baidu.com"; // 待转换的长链接 String apiKey = "你的API Key"; // 填写你在百度网址申请的API Key String url = "http://dwz.cn/create.php"; String param = "url=" + URLEncoder.encode(longUrl, "UTF-8") + "&apikey=" + apiKey; String result = sendGet(url, param); System.out.println(result); } private static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection(); connection.setRequestMethod("GET"); connection.connect(); in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常:" + e); e.printStackTrace(); } finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } } ``` 在上面的代码中,你需要替换 `longUrl` 和 `apiKey` 的值。`longUrl` 是你要转换成链接的长链接,`apiKey` 是你在百度网址申请的API Key。运行代码后,你将会得到一个 JSON 格式的响应,其中包含了生成的链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值