Androd学习笔记——新浪微博Android SDK——如何打印出5位错误码

  新浪微博是我最早写入到项目中去的,利用的是它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);估计是作者在编写时的一个失误。


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

复制代码
 1 weiboRunner.request(AAuthTestActivity.this, url, bundle, Utility.HTTPMETHOD_POST, new  com.weibo.net.AsyncWeiboRunner.RequestListener(){
2
3 @Override
4 public void onComplete(String arg0) {
5 // TODO Auto-generated method stub
6 Log.e("sina_complete",arg0.toString());
7 }
8
9 @Override
10 public void onError(WeiboException arg0) {
11 // TODO Auto-generated method stub
12 Log.e("sina_error",arg0.toString());

13 }
14
15 @Override
16 public void onIOException(IOException arg0) {
17 // TODO Auto-generated method stub
18 Log.e("sina_IOException",arg0.toString());
19 }
20
21 });
复制代码

 

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

  希望对大家有帮助!

posted @   lingyun1120  阅读(2938)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示