使用cookie获取QQ头像(JSP版)
由于腾讯现在QQ头像必须要登录才能看到原头像,所以以前直接获取头像已经失效了(如这篇文章获取QQ头像地址),既然直接获取不行,那来个曲线救国吧~ PS:写完代码后才发现腾讯的头像隐私保护得挺好的,只有自己的好友或群友能获取全头像,非好友只能获取QQ内置头像。悲剧啊。。。 直接贴代码,以下代码是通过带cookie访问头像的链接,其实其他PHP等也可以实现的: <%@ page language="java" contentType="image/bmp" pageEncoding="UTF-8"%><%@ page import="java.net.*,java.util.*,java.io.*"%><% String qqnum = request.getParameter("qq"); URL url = new URL("http://face6.qun.qq.com/cgi/svr/face/getface?type=1&uin="+qqnum); HttpURLConnection http = (HttpURLConnection) url.openConnection(); //设置Header http.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)"); http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); //设置Cookie,登陆WebQQ或者QQ空间可以查看cookie得到下面的值,请替换过来 //还不知道skey这个值会不会定期变化,QQ号码不够10位前面补0 http.setRequestProperty("Cookie", "uin=oQQ号码; skey=@安全码;"); http.setRequestMethod("GET"); http.setDoInput(true); InputStream is = http.getInputStream(); //得到输出流,注意out是Writer类的对象,这里要用字节流 OutputStream os = response.getOutputStream(); //输出头像 while (is.available() > [...]