java短网址生成代码 java建立网站

java调用百度api生成短链接,跪求java代码,不要复制网上的,要自己亲测实际能运行的!谢谢package com.zhidao.www;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class TestShort {
public static void main(String[] args) {
// TODO Auto-generated method stub
String httpUrl = "";
String httpArg = "url_long=http%3A%2F%2Fapistore.baidu.com%2Fastore%2Fshopready%2F1973.html";
String jsonResult = request(httpUrl, httpArg);
System.out.println(jsonResult);
}
/**
* @param urlAll
*:请求接口
* @param httpArg
*:参数
* @return 返回结果
*/
public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey","自己java短网址生成代码的apikey");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
这个可以用 不过要自己申请下api key 得到java短网址生成代码的字符串也要自己解析
java实现长连接转短网址长连接听起来神秘而已 。
只要不关都是长连接啊 。
transferSocket=new Socket(transferServerIp, Integer.valueOf(transferServerport));
transferSocket.close()
每次运行的时候生成一个socket,用完了就close就是短连接啊
如何生成短链接 java因公司推广需要,需要一套短链接生成方案,正好前几天在MSDN看到有人发了一个.net版的短链接算法,我就把它转换成java版 , 拿出来共享一下
生成思路:
1.将"原始链接(长链接)+key(自定义字符串,防止算法泄漏)"MD5加密
2.把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算,把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引,把取得的字符相加,每次循环按位右移 5 位,把字符串存入对应索引的输出数组(4组6位字符串)
3.生成4以下的随机数,从输入数组中取出随机数对应位置的字符串,作为短链,存入数据库或者NoSql
解析方式
编写一个web处理程序,把从ur(如:中解析短链接,将解析到的短链接(zAnuAn)与数据库中存入的原始链接进行匹配,跳转到匹配到的原始链接
package com.bjdata.test;
import java.security.MessageDigest;
import java.util.Random;
public class ShortUrlTest {
public static void main(String[] args) {
String sLongUrl = "/bbs/_t_278433840/"; // 原始链接
System.out.println("长链接:"+sLongUrl);
String[] aResult = shortUrl(sLongUrl);//将产生4组6位字符串
// 打印出结果
for (int i = 0; iaResult.length; i++) {
System.out.println("[" + i + "]:" + aResult[i]);
}
Random random=new Random();
int j=random.nextInt(4);//产成4以内随机数
System.out.println("短链接:"+aResult[j]);//随机取一个作为短链
}
public static String[] shortUrl(String url) {
// 可以自定义生成 MD5 加密字符传前的混合 KEY
String key = "test";