android 使用新浪微博API接口
2013-09-23 11:09
267 查看
最近在开发中需要用到关联新浪微博好友的功能。
研究了微博好几天,主要就卡在了HTTPS请求协议上。
之前没有注意到协议问题,所以一直用的http协议 我说怎么提交请求的时候获取不到返回值
在这里给遇到同样问题的朋友做个参照,希望可以帮助到你们。
新浪微博的认证授权这里就不多说了,官方文档中有非常详细的说明。
授权成功后你就可以获取access_token和uid(用户id)两个参数。
这里本文以获取微博双向关注列表的接口为例子,想查看其他接口URL的朋友狂点 新浪微博API
根据授权后的两个参数和接口URL拼凑后的路径为
“https://api.weibo.com/2/friendships/friends/bilateral.json?uid=1679441897&access_token=2.00XYlepBTCdHfB701172c7a3PI3N7C”
https get请求方法:
还要重写X509TrustManager这个接口,通过实现X509TrustManager来定义了证书管理器,对服务器和客户端进行验证方法,把所有的方法写成空(如果有的话则需要验证),还需要定义我们的KeyStore来源数字签名证书文件)。然后初始化证书管理工厂,并调用getTrustManagers()方法来获取这个管理器,在这里我们不需要做防钓鱼之类的操作,所以我们把它的证书清空,使其不需要验证服务器证书,可以通过任何服务器。
这样把之前拼凑的URL带进gethttps方法运行后,就可以获取新浪微博返回的json数据了。
之后可以根据自己的需求,解析json获取需要的数据
研究了微博好几天,主要就卡在了HTTPS请求协议上。
之前没有注意到协议问题,所以一直用的http协议 我说怎么提交请求的时候获取不到返回值
在这里给遇到同样问题的朋友做个参照,希望可以帮助到你们。
新浪微博的认证授权这里就不多说了,官方文档中有非常详细的说明。
授权成功后你就可以获取access_token和uid(用户id)两个参数。
这里本文以获取微博双向关注列表的接口为例子,想查看其他接口URL的朋友狂点 新浪微博API
根据授权后的两个参数和接口URL拼凑后的路径为
“https://api.weibo.com/2/friendships/friends/bilateral.json?uid=1679441897&access_token=2.00XYlepBTCdHfB701172c7a3PI3N7C”
https get请求方法:
private String GetHttps(String https) { String content=""; try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, new TrustManager[] { new MyTrustManager() }, new SecureRandom()); HttpsURLConnection .setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection .setDefaultHostnameVerifier(new MyHostnameVerifier()); HttpsURLConnection conn = (HttpsURLConnection) new URL(https) .openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.connect(); BufferedReader br = new BufferedReader(new InputStreamReader( conn.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while ((line = br.readLine()) != null){ sb.append(line); content = sb.toString(); } } catch (Exception e) { Log.i("linshi", e.getMessage()); } return content; }
还要重写X509TrustManager这个接口,通过实现X509TrustManager来定义了证书管理器,对服务器和客户端进行验证方法,把所有的方法写成空(如果有的话则需要验证),还需要定义我们的KeyStore来源数字签名证书文件)。然后初始化证书管理工厂,并调用getTrustManagers()方法来获取这个管理器,在这里我们不需要做防钓鱼之类的操作,所以我们把它的证书清空,使其不需要验证服务器证书,可以通过任何服务器。
private class MyHostnameVerifier implements HostnameVerifier { public boolean verify(String hostname, SSLSession session) { return true; } } private class MyTrustManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub } public X509Certificate[] getAcceptedIssuers() { // TODO Auto-generated method stub return null; } }
这样把之前拼凑的URL带进gethttps方法运行后,就可以获取新浪微博返回的json数据了。
之后可以根据自己的需求,解析json获取需要的数据
相关文章推荐
- android 使用Intent.ACTION_SEND分享图片和文字内容(新浪微博,短信等)
- 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- 使用WebView实现新浪微博Oauth2.0认证(android)
- 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- 使用WebView实现新浪微博Oauth2.0认证(android)
- 详解Android/IOS平台下抓包工具使用以及抓取API接口
- [Android] PorterDuff使用实例----实现新浪微博图片下载效果
- android App使用新浪微博sdk的使用总结
- [Android分享] 使用QQ账号,新浪微博账号登录第三方应用
- Android新浪微博开发(一)OAnth认证及账户管理、sdk的使用
- Android新浪微博-项目整理总结 二[使用WebView获取OAuth验证码]
- Android 使用第三方登录(QQ和新浪微博)
- Android使用Mob的ShareSDK集成新浪微博登录闪退问题
- [Android] 使用新浪微博SDK进行SSO登录
- Android仿新浪微博底栏(FragmentTabHost的使用)
- Android上新浪微博SDK的使用方法介绍
- Android使用ShareSDK分享到新浪微博
- Android程序之聚合数据全国天气预报查询API接口使用演示