韩震博客|关注于学习java&php与交流

java 通过QQ号获取QQ头像、昵称

admin 2018年04月12日 Java知识 431 0

在注册模块中,准备通过用户输入QQ号来获得昵称,头像。

 

一、QQ 头像

以下两种种都可以

http://q1.qlogo.cn/g?b=qq&nk=847064370&s=100

http://q2.qlogo.cn/headimg_dl?dst_uin=847064370&spec=100

 

847064370 是 qq 号码,

100 是尺寸,具体可以参考下图

spec.png

二、QQ 昵称

QQ昵称和QQ空间头像的获取其实都是通过第一个链接返回的 jsonp 数据中得到的

http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=847064370

其中 847064370 是 qq 号码

 qqjson-1024x603.png

其中 "http://qlogo3.store.qq.com/qzone/847064370/847064370/100" 是 QQ头像

"初云" 是 QQ 昵称

 

三、Java 代码获取QQ昵称和头像

应该导入的第三方库

<!--lombok-->

 <dependency>

     <groupId>org.projectlombok</groupId>

     <artifactId>lombok</artifactId>

     <optional>true</optional>

 </dependency>

 <!--fasthson-->

 <dependency>

     <groupId>com.alibaba</groupId>

     <artifactId>fastjson</artifactId>

     <version>1.2.7</version>

 </dependency>

 

QQ.java

package com.liuyanzhao.chuyun.vo;

import lombok.Data;

/**

 * @author 言曌

 * @date 2018/2/18 下午10:35

 */

@Data

public class QQ {

    private Long id;

    private String name;

    private String avatar;

    public QQ() {

    }

    public QQ(Long id, String name, String avatar) {

        this.id = id;

        this.name = name;

        this.avatar = avatar;

    }

}

 

QQUtil.java

package com.liuyanzhao.chuyun.util;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import com.liuyanzhao.chuyun.vo.QQ;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

/**

 * 根据QQ号码获取QQ信息

 * @author 言曌

 * @date 2018/2/19 上午9:55

 */

public class QQUtil {

    private static String getQQJsonStr(Long qqId) {

        StringBuilder jsonString = new StringBuilder();

        URLConnection connection = null;

        try {

            URL urlObject = new URL("http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins="+qqId);

            connection = urlObject.openConnection();

            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"GBK"));

            String inputLine = null;

            while ((inputLine = in.readLine()) != null) {

                jsonString.append(inputLine);

            }

            in.close();

        } catch (MalformedURLException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

        return jsonString.toString().substring("portraitCallBack(".length(),jsonString.length()-1);

    }

    public static QQ getQQInfo(Long qqId) {

        QQ qq = new QQ();

        String jsonString = getQQJsonStr(qqId);

        JSONObject jsonObject = JSON.parseObject(jsonString);

        JSONArray jsonArray = jsonObject.getJSONArray(String.valueOf(qqId));

        qq.setId(qqId);

        qq.setName((String) jsonArray.get(6));

        qq.setAvatar((String) jsonArray.get(0));

        return qq;

    }

    public static void main(String args[]) {

        System.out.println(getQQInfo(847064370L));

    }

}

 

运行结果

qqinfo-1024x84.png

转载请注明出处:红色火线加油站!http://hongsehuoxian.com
看到这里如果这篇文章真的帮到你了,不妨打赏一下哦!

以上就是红色火线JAVA加油站整理的关于java 通过QQ号获取QQ头像、昵称的文章,
希望可以帮到你,如果你有不同的见解可以留言指正哦,避免让别的java小伙伴在走挫折路。
Java 之 BASE64 加密解密
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信