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

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

一、QQ 头像

以下两种种都可以   847064370 是 qq 号码, 100 是尺寸,具体可以参考下图  

二、QQ 昵称

QQ昵称和QQ空间头像的获取其实都是通过第一个链接返回的 jsonp 数据中得到的 http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=847064370 其中 847064370 是 qq 号码       其中 "http://qlogo3.store.qq.com/qzone/847064370/847064370/100" 是 QQ头像 "初云" 是 QQ 昵称  

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

应该导入的第三方库
  1. <!--lombok-->
  2.  <dependency>
  3.      <groupId>org.projectlombok</groupId>
  4.      <artifactId>lombok</artifactId>
  5.      <optional>true</optional>
  6.  </dependency>
  7.  <!--fasthson-->
  8.  <dependency>
  9.      <groupId>com.alibaba</groupId>
  10.      <artifactId>fastjson</artifactId>
  11.      <version>1.2.7</version>
  12.  </dependency>
  QQ.java
  1. package com.liuyanzhao.chuyun.vo;
  2. import lombok.Data;
  3. /**
  4.  * @author 言曌
  5.  * @date 2018/2/18 下午10:35
  6.  */
  7. @Data
  8. public class QQ {
  9.     private Long id;
  10.     private String name;
  11.     private String avatar;
  12.     public QQ() {
  13.     }
  14.     public QQ(Long id, String name, String avatar) {
  15.         this.id = id;
  16.         this.name = name;
  17.         this.avatar = avatar;
  18.     }
  19. }
  QQUtil.java
  1. package com.liuyanzhao.chuyun.util;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.liuyanzhao.chuyun.vo.QQ;
  6. import java.io.BufferedReader;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11. import java.net.URLConnection;
  12. /**
  13.  * 根据QQ号码获取QQ信息
  14.  * @author 言曌
  15.  * @date 2018/2/19 上午9:55
  16.  */
  17. public class QQUtil {
  18.     private static String getQQJsonStr(Long qqId) {
  19.         StringBuilder jsonString = new StringBuilder();
  20.         URLConnection connection = null;
  21.         try {
  22.             URL urlObject = new URL("http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins="+qqId);
  23.             connection = urlObject.openConnection();
  24.             BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"GBK"));
  25.             String inputLine = null;
  26.             while ((inputLine = in.readLine()) != null) {
  27.                 jsonString.append(inputLine);
  28.             }
  29.             in.close();
  30.         } catch (MalformedURLException e) {
  31.             e.printStackTrace();
  32.         } catch (IOException e) {
  33.             e.printStackTrace();
  34.         }
  35.         return jsonString.toString().substring("portraitCallBack(".length(),jsonString.length()-1);
  36.     }
  37.     public static QQ getQQInfo(Long qqId) {
  38.         QQ qq = new QQ();
  39.         String jsonString = getQQJsonStr(qqId);
  40.         JSONObject jsonObject = JSON.parseObject(jsonString);
  41.         JSONArray jsonArray = jsonObject.getJSONArray(String.valueOf(qqId));
  42.         qq.setId(qqId);
  43.         qq.setName((String) jsonArray.get(6));
  44.         qq.setAvatar((String) jsonArray.get(0));
  45.         return qq;
  46.     }
  47.     public static void main(String args[]) {
  48.         System.out.println(getQQInfo(847064370L));
  49.     }
  50. }
  运行结果     本文地址:https://liuyanzhao.com/7536.html  

发表评论

目前评论:1