② 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理;
③ 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串;
④ 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。
很简单的理论,我们并不一定说得到的URL是唯一的,但是我们能够取出4组URL,这样几乎不会出现太大的重复。
实现调用微博内容的Java程序如下:(注意注释)为保护隐私运行结果就不贴出来了。import java.io.BufferedWriterimport java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.OutputStreamWriter
import java.util.Iterator
import java.util.List
import weibo4j.Timeline
import weibo4j.model.Status
import weibo4j.model.StatusWapper
import weibo4j.model.WeiboException
public class F { public static void main(String[] args) {
String userID=""//这里由于保护隐私请自己填写userID
String token=""//这里由于保护隐私请自己填写token
Timeline t=new Timeline()
t.client.setToken(token)
StatusWapper sw=null
List<Status>status=null
BufferedWriter bw=null
try{
sw=t.getUserTimelineByUid(userID)
status=sw.getStatuses()
bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\status.txt"),"gbk"))
Iterator<Status>iterator=status.iterator()
Status s=null
while(iterator.hasNext()){
s=(Status)iterator.next()
bw.write(s.toString())//这里如果只需要微博内容可以bw.write(s.getText())
bw.newLine()
bw.flush()
}
}catch(WeiboException e){
e.printStackTrace()
System.out.println(e)
}catch(FileNotFoundException e){
e.printStackTrace()
}catch(IOException e){
e.printStackTrace()
}finally{
try {
bw.close()
} catch (IOException e) {
e.printStackTrace()
}
}
}
}
获取当前登录用户及其所关注用户的最新微博的Java程序如下:(注意注释)为保护隐私运行结果就不贴出来了。
import java.io.BufferedWriter
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.OutputStreamWriter
import java.util.Iterator
import java.util.List
import weibo4j.Timeline
import weibo4j.model.Status
import weibo4j.model.StatusWapper
import weibo4j.model.WeiboException
public class E {
public static void main(String[] args) {
String userID=""//这里由于保护隐私请自己填写userID
String token=""//这里由于保护隐私请自己填写token
Timeline t=new Timeline()
t.client.setToken(token)
StatusWapper sw=null
List<Status>status=null
BufferedWriter bw=null
try{
sw=t.getFriendsTimeline()
status=sw.getStatuses()
bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\friends_status.txt"),"gbk"))
Iterator<Status>iterator=status.iterator()
Status s=null
while(iterator.hasNext()){
s=(Status)iterator.next()
bw.write(s.toString())//这里如果只需要微博内容可以bw.write(s.getText())
bw.newLine()
bw.flush()
}
}catch(WeiboException e){
e.printStackTrace()
System.out.println(e)
}catch(FileNotFoundException e){
e.printStackTrace()
}catch(IOException e){
e.printStackTrace()
}finally{
try {
bw.close()
} catch (IOException e) {
e.printStackTrace()
}
}
}
}