Tag Archives: 新浪微博

HttpClient 4.3中Https的使用方法

开发Android版Do+新浪微博客户端时使用到了HTTPClient库,当时刚刚接触API接口开发很多都不懂,直接调用HTTPS时直接报证书错误,后来查找资料发现,HTTPClient在请求HTTPS时也需要证书认证。通过自定义HTTPClient顺利实现了接口调用。最近在做另外一个项目,也会通过HTTPClient来调用第三方的API,所以又查看了一下HTTPClient的源码,把HTTPS的请求方式重新梳理一下。

注意:Android项目中内嵌的HTTPClient库版本为4.2.3,详见此处。下面介绍中使用的库为4.3,两者之间有些差异。4.3当前为开发版,谨慎使用。

以新浪微博API为例,

1、通过浏览器下载https://api.weibo.com的证书

Chrome浏览器,地址栏中键入“https://api.weibo.com/oauth2/authorize”,点击左侧绿色锁状图标,选择”连接”选项卡,点击”证书信息”

IE浏览器,地址栏中键入“https://api.weibo.com/oauth2/authorize”,点击右侧橙色锁状图标,点击”查看证书信息”

弹出对话框,选择“详细信息”选项卡,右侧点击“复制到文件”,进入证书导出向导,点击”下一步”,选择”Base64 编码 X.509(.CER)(S)”,点击”下一步”,选择证书保存位置。证书导出成功。

2、加载证书信息,构造KeyStore。默认将证书****.cer放在src下

3、构造SSLContext

4、创建可用Scheme

5、创建ConnectionManager,添加Connection配置信息

6、构建HTTPClient

HttpClients.custom().setConnectionManager(conManager).build();

7、发起HTTP Request

 

8、当前默认编码为UTF-8.在之前版本中设置编码是通过BasicParam设置为HTTP.UTF-8

在新版本中改为Config模式,参数为Consts.UTF-8。

 

基于GAE的新浪微博 QQ空间 豆瓣 OAuth2.0 认证(待续)

附:OAuth2.0通用函数