新浪微博Android SDK——如何打印出5位错误码

来源:互联网 发布:前程无忧常州数控编程 编辑:程序博客网 时间:2024/06/06 02:43

  新浪微博是我最早写入到项目中去的,利用的是它Java SDK。但是最近整理各个SDK的时候发现——新浪微博对新应用要求使用OAuth2.0,所以我只能利用它的Android SDK重新写入到程序中。其实改写程序还是比较简单的,只要根据它的Sample程序进行修改就行了。但是这个过程中碰到了一个问题。

  问题描述:获得Access Token之后,进行图文微博的发送,但是每次只有第一次发送成功,获得Log信息:“{"created_at":"Wed Mar 21 11:12:52 +0800……”。但是接下来我继续发送的话,却得到:“com.weibo.net.WeiboException: HTTP/1.1 400 ”。我在新浪论坛问了一下,版主要求我提供5位错误码。我表示一头雾水,难道要我进行抓包。。。

  问题解决:其实我们仔细观察会发现,其实我们两次得到的Log信息其实是不一样的。至少第二次也应该是:“{……}”的。所以我就怀疑是SDK内部写错。经过我的调试,最后我们的办法是:

  在SDK的Utility.java的第335行:throw new WeiboException(String.format(status.toString()), statusCode);
改成:throw new WeiboException(result, statusCode);估计是作者在编写时的一个失误。


  然后在你的程序中输出错误信息就可以了:

weiboRunner.request(AAuthTestActivity.this, url, bundle, Utility.HTTPMETHOD_POST, new  com.weibo.net.AsyncWeiboRunner.RequestListener(){                          @Override                         public void onComplete(String arg0) {                             // TODO Auto-generated method stub                             Log.e("sina_complete",arg0.toString());                         }                          @Override                         public void onError(WeiboException arg0) {                             // TODO Auto-generated method stub                             Log.e("sina_error",arg0.toString());                         }                          @Override                         public void onIOException(IOException arg0) {                             // TODO Auto-generated method stub                             Log.e("sina_IOException",arg0.toString());                         }                                              });

 我的输出信息是:{"error":"repeat content!","error_code":20019,"request":"/2/statuses/upload.json"}。这样你就可以在http://open.weibo.com/wiki/Help/error 找到你的错误原因了。

  希望对大家有帮助!


原创粉丝点击