首页 > 技术文章 > 【根据用户ID获取用户信息】

mfxp 2013-07-26 14:45 原文

在新浪微博授权后调用获取用户信息的接口时候会报以下错误(用户不存在):

  com.weibo.sdk.android.WeiboException: {"error":"User does not exists!","error_code":20003,"request":"/2/users/show.json"}

  如果你查看新浪源码的就会发现,其实这个错误是一个很幼稚的问题,为什么这么说呢,我们先看下源码:

  [java] /**

  * 根据用户ID获取用户信息

  *

  * @param uid

  *            需要查询的用户ID。

  * @param listener

  */

  public void show(long uid, RequestListener listener) {

  WeiboParameters params = new WeiboParameters();

  params.add("uid", uid);

  request(SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET,

  listener);

  }

  /**

  * 根据用户ID获取用户信息

  *

  * @param screen_name

  *            需要查询的用户昵称。

  * @param listener

  */

  public void show(String screen_name, RequestListener listener) {

  WeiboParameters params = new WeiboParameters();

  params.add("screen_name", screen_name);

  request(SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET,

  listener);

  }

  /**

  * 根据用户ID获取用户信息

  *

  * @param uid

  *            需要查询的用户ID。

  * @param listener

  */

  public void show(long uid, RequestListener listener) {

  WeiboParameters params = new WeiboParameters();

  params.add("uid", uid);

  request(SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET,

  listener);

  }

  /**

  * 根据用户ID获取用户信息

  *

  * @param screen_name

  *            需要查询的用户昵称。

  * @param listener

  */

  public void show(String screen_name, RequestListener listener) {

  WeiboParameters params = new WeiboParameters();

  params.add("screen_name", screen_name);

  request(SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET,

  listener);

  }

  或许看过后你就恍然大悟,如果传入的是字符串那么默认调用下面这个接口,所以会报 User does not exists!

  如果传入的是long类型,那么调用的是上面那个接口,根据uid查询用户信息。

  PS:切勿将uid作为字符串进行调用接口!

推荐阅读