关于Android使用新浪API的一些说明

通常获得新浪Oauth2AccessToken以后,可以用Demo中的AccessTokenKeeper类将Token保存在SharedPreferences中。


DEMO中并未给出uid的获得方式,可以通过两种方式获取。


1.在WeiboAuthListener中的onComplete(Bundlevalues)回调方法,调用values.getString("uid")获得。

2.通过新浪API接口,传入token获得Json。


新浪SDK的文档给出的信息量较少,很大程度上,我们需要自己摸索。


在调用API接口时,发现很多疑问。

1.在使用自己的HttpUtils类去用GET方式请求Json,发现会有IOException。

2.Parameters为自定义的类,存放在Arraylist中。

3.在4.0版本不可以在MainThread中进行网络操作,可以用AsyncTask或者另起线程来进行异步操作。

至于为什么报异常,需要进一步验证。


解决办法:

1.不要自己去写HttpUtils,应该使用新浪本身的HttpManager,调用其openUrl()方法,获得Json。

2.openUrl()中需要传递WeiboParameters,用add()方式向其添加请求参数。

3.可以用JSONObject去解析Json数据,需要导入Json的jar包来支持。


以下代码可以作为参考(通过新浪API接口传入Token获取当前用户uid)

	public void getUserInfo(String token) {
		String url = "https://api.weibo.com/2/account/get_uid.json";
		WeiboParameters weiboParameters = new WeiboParameters();
		weiboParameters.add("access_token", token);

		try {
			String result = HttpManager.openUrl(url,
					HttpManager.HTTPMETHOD_GET, weiboParameters, null);
			JSONObject obj = new JSONObject(result);
			Log.e("uid",obj.getInt("uid")+"");
		} catch (WeiboException e) {
			e.printStackTrace();
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}


以上所有内容均为个人观点,若有疑问和意见,欢迎留言讨论。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值