现在的位置: 首页 > 综合 > 正文

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

2014年10月11日 ⁄ 综合 ⁄ 共 1252字 ⁄ 字号 评论关闭

 新浪微博是我最早写入到项目中去的,利用的是它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 找到你的错误原因了。

  希望对大家有帮助!

抱歉!评论已关闭.