[1]. 用户头像显示
地址:
http://en.gravatar.com/
Gravatar会把邮箱和对应邮箱用户上传的图片进行关联.
如果你的应用使用了gravatar,访问你应用的用户有在gravatar上注册且上传了头像,你的应用就可以通过用户留下的邮箱地址来显示图片,你可以把它当成用户的头像.
使用Gravatar的话就可以除去要向客户传输图片的压力,当然这也需要用户有在Gravatar注册过账号..
/**
* 类名: Gravatar.java<br />
* 类描述:Gravatar邮箱关联图片,头像显示
*
* @version: 1.0
* @date: 2013-4-4 下午7:35:27
* **/
public class Gravatar {
private final static String BASE = "http://www.gravatar.com/avatar/";
/**
* 方法描述:通过邮箱获取图片地址
* @param email 邮箱地址
* @param size 图片大小
* @return: 图片地址
* @version: 1.0
* @date: 2013-4-4 下午7:45:03
* **/
public static String getImage(String email, Integer size) {
return BASE + md5Hex(email) + "?s=" + size + "&d=mm";
}
/**
* 方法描述:通过邮箱批量获取图片地址
* @param emailList 多个邮箱地址
* @return: 图片地址集合
* @param size 图片大小
* @version: 1.0
* @date: 2013-4-4 下午7:42:39
* **/
public static List<String> getImages(List<String> emailList, Integer size) {
List<String> list = new ArrayList<String>();
for (String email : emailList) {
list.add(BASE + md5Hex(email) + "?s=" + size + "&d=mm");
}
return list;
}
//------------ 以下为私有方法
private static String hex(byte[] array) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(
1, 3));
}
return sb.toString();
}
private static String md5Hex(String message) {
String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
result = hex(md.digest(message.getBytes("CP1252")));
} catch (NoSuchAlgorithmException e) {
} catch (UnsupportedEncodingException e) {
}
return result;
}
}
[2]. URL缩短
地址:
http://p.tl/api.php
缩短URL,将用户的URL关联到她域名下的一个地址.
/**
* 类名: PixivURL.java<br />
* 类描述:URL缩短
* @version: 1.0
* @date: 2013-4-5 下午10:27:46
* **/
public class PixivURL extends P implements PStatus {
/** API_KEY: API_KEY **/
private static final String API_KEY = "1f726de5d07a80556e7f54baeffab04b30f348c0";
/**
* 方法描述:url缩短
* @param url 原始地址
* @return: 缩短后的url
* @version: 1.0
* @date: 2013-4-5 下午10:29:15
* **/
public static PixivURL getInstance(String url) {
String requestUrl = "http://p.tl/api/api_simple.php?key=" + API_KEY + "&url=" + url;
URL u;
BufferedReader br;
PixivURL p = null;
String link;
try {
u = new URL(requestUrl);
URLConnection conn = u.openConnection();
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
br = new BufferedReader(isr);
while(null != (link = br.readLine())){
Gson gson = new Gson();
p = gson.fromJson(link, PixivURL.class);
}
} catch (Exception e) {
e.printStackTrace();
}
return p;
}
/**
* 方法描述:批量处理
* @param urls URL集合
* @return: 修改后的URL
* @version: 1.0
* @date: 2013-4-5 下午11:44:35
* **/
public static List<PixivURL> getInstance(List<String> urls) {
List<PixivURL> list = new ArrayList<PixivURL>();
for (String url : urls) {
list.add(PixivURL.getInstance(url));
}
return list;
}
}
class P {
/** status: 操作状态(成功返回PixivURL.REQUEST_SUCCESS) **/
private String status;
/** long_url: 原始的URL **/
private String long_url;
/** short_url: 缩短的URL **/
private String short_url;
/** counter: 使用了几次(1天能调用1000次) **/
private String counter;
/** @return status : 操作状态 **/
public String getStatus() {
return status;
}
/** @return long_url : 原始的URL **/
public String getLongUrl() {
return long_url;
}
/** @return short_url : 缩短的URL **/
public String getShortUrl() {
return short_url;
}
/** @return counter : 使用了几次(1天能调用1000次) **/
public String getCounter() {
return counter;
}
}
interface PStatus {
// empty API key APIキーが入力されていません。
// invalid API key 不正なAPIキーです。
/** OK: URL成功缩短/URLの短縮が成功しました **/
static String OK = "ok";
/** EMPTY_LONG_URL: 未输入需要缩短的URL/短縮元のURLが入力されていません **/
String EMPTY_LONG_URL = "empty long url";
/** API_LIMIT: 调用次数超过上限(1天能调用1000次)/APIの利用回数が上限を越えています **/
String API_LIMIT = "API limit";
/** INVALID_LONG_URL: URL无法缩短 /短縮できないURLです**/
String INVALID_LONG_URL = "invalid long url";
}
附件就是上面描述的两个应用,[2]会用到gson
下面是演示调用:
public class Test {
public static void main(String[] args) throws Exception{
pixivURL();
gravatar();
}
private static void pixivURL() throws Exception {
PixivURL p = PixivURL.getInstance("http://lshtzml-163-com.iteye.com/admin/blogs/1842602");
if (PixivURL.OK.equals(p.getStatus())) {
Desktop.getDesktop().browse(new URL(p.getShortUrl()).toURI());
} else if (PixivURL.API_LIMIT.equals(p.getStatus())) {
System.out.println("调用次数超过上限");
} else if (PixivURL.EMPTY_LONG_URL.equals(p.getStatus())) {
System.out.println("未输入需要缩短的URL");
} else if (PixivURL.INVALID_LONG_URL.equals(p.getStatus())) {
System.out.println("URL无法缩短");
}
}
private static void gravatar() throws Exception {
String url = Gravatar.getImage("mikoarisu@gmail.com", 200);
Desktop.getDesktop().browse(new URL(url).toURI());
}
}
分享到:
相关推荐
moss中使用第三方邮箱解决方案,请大家多指教
如何在Windows 8的邮件应用来使用第三方提供商邮箱.docx
SAF 易支付系统是一个可以第三方/第四方免签约聚合支付系统,基于彩虹易支付二次开发而来,增加了大量实用功能,适合支付类企业使用。版权所有 安装教程 1. 上传源码 zip 压缩包到网站根目录,解压。 2. 访问你的...
巧用Win8自带邮件功能来使用第三方邮箱.docx
Java Web实现邮箱注册用户
office outlook中设置两个不同的邮箱。。
该文件包含了调试过的整套发送带附件的邮件源码,以及配套使用的javamail库文件,直接调试完毕可以直接使用
关于UCOS下邮箱使用的两个经验,学习ucos邮箱操作的好资料,希望对大家有用……
使用第三方mail jar包,实现邮件发送、进行邮件验证功能,根据邮箱进行密码找回
使用自定义URL方案与第三方iOS邮件客户端进行交互。 支持的邮件客户端 客户 URL方案 应用商店 麻雀 sparrow 已停产 邮箱 googlegmail 派遣 x-dispatch 火花 readdle-spark 航空邮件 airmail 微软Outlook ms-...
发邮件第三方插件,可以相关代码调用,让其具备发送邮件功能
LoadRunner关联应用实例 软件测试 脚本内容:录制web登录邮箱,发送一封带有附件的邮件。 由于每次执行的时候服务器的返回值,这个返回值—附件变量"AttachFiles"每次返回都是不一样的,所以需要将这个变量"Attach...
flask实现的用户登录注册、密码邮箱修改、头像修改上传等操作
上传部分自己总结的常用方法的封装,有不足和不完美之处,希望大家指出来,愿意一起主要研究erp,cms,crm,b2b,oa等系统和网站的开发,欢迎有共同追求和学的IT人员一起学习和交流。学习和讨论有关asp.net mvc ,Ajax ,...
这是一个Vue+Springboot+shiro的登录案例。前端采用Vue+Elementui,对于axios进行了封装,实现了前端的路由控制,登录状态检测等。后端采用Springboot,数据持久化工具采用Mybatis,对于返回的数据进行了封装,对于...
里面包含 3个内容: 1、hik-demo 基于 海康SDK API 开发 的的demo ...具体介绍可以看本人博客介绍,位置 分类专栏-> 第三方sdk 。 对于没有积分的朋友,可以在博客下方带上邮箱留言。 看到之后会第一时间回复。谢谢。
2007年9月,网易旗下三大免费邮箱全面开放无限容量升级服务。2009年3月,网易宣布进军企业邮箱市场,标志着网易邮箱不但是中国第一大电子邮件运营商,更是国内提供最全面邮件服务的运营商。2009年11月,邮件客户端...
Java获取Avatar头像图片工具类。输入参数为Avatar注册邮箱地址,就能生成对应注册邮箱的Avatar头像链接。WordPress头像。
可以对两个数据列一致的EXCEL文件进行快速比较。 更新了算法,真正的高速比较。 已经注册的版本。 欢迎大家提意见,邮箱:hqad@qq.com