如何使用java代码访问微博短网址的url

Python019

如何使用java代码访问微博短网址的url,第1张

① 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符

② 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理;

③ 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串;

④ 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。

很简单的理论,我们并不一定说得到的URL是唯一的,但是我们能够取出4组URL,这样几乎不会出现太大的重复。

长连接听起来神秘而已。

只要不关都是长连接啊。

transferSocket=new Socket(transferServerIp, Integer.valueOf(transferServerport))

transferSocket.close()  

每次运行的时候生成一个socket,用完了就close就是短连接啊

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 = "http://apis.baidu.com/3023/shorturl/shorten"

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", "自己的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 得到的字符串也要自己解析