本文主要是介绍sina微博之errorcode:20003,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在新浪微博授权后调用获取用户信息的接口时候会报以下错误(用户不存在):
错误原文:
com.sina.weibo.sdk.exception.WeiboHttpException: {"error":"User does not exists!","error_code":20003,"request":"/2/users/show.json"}
一开始,我很郁闷为什么获取不到user,后来仔细看了一边原码,才发现,这错误是有多幼稚,难怪百度半天都找不到。
给大家贴上源码
/*** 根据用户ID获取用户信息。* * @param uid 需要查询的用户ID* @param listener 异步请求回调接口*/public void show(long uid, RequestListener listener) {WeiboParameters params = new WeiboParameters(mAppKey);params.put("uid", uid);requestAsync(sAPIList.get(READ_USER), params, HTTPMETHOD_GET, listener);}/*** 根据用户昵称获取用户信息。* * @param screen_name 需要查询的用户昵称* @param listener 异步请求回调接口*/public void show(String screen_name, RequestListener listener) {WeiboParameters params = new WeiboParameters(mAppKey);params.put("screen_name", screen_name);requestAsync(sAPIList.get(READ_USER), params, HTTPMETHOD_GET, listener);}
这里获取用户信息有两种,前者是uid,后者是screen_name。
sina sdk代码中是这样获取的
//就会去触发用户信息访问的接口mUsersAPI.show(mAccessToken.getUid(), mListener);
一比较,就很容易知道缘由
或许看过后你就恍然大悟,如果传入的是字符串那么默认调用下面这个接口,所以会报 User does not exists!
如果传入的是long类型,那么调用的是上面那个接口,根据uid查询用户信息。
PS:切勿将uid作为字符串进行调用接口!
这篇关于sina微博之errorcode:20003的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!