API的全称是应用编程接口(Application Programming Interface),这并不是一个新概念,在计算机操作系统出现的早期就已经存在了。在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,与之对应的,所开放的API就被称作openAPI。
OSCHINA API的使用
OSCHINA API:https://www.oschina.net/openapi/docs
1 2 3 4 5 6 7 8
| - 什么是token token(令牌)是一串唯一的字符串,通常由服务端生成,在注册完成时返回给客户端,用来标识此用户,客户端将此字符串存储在本地。在以后的网络请求时,客户端先查询本地的token,如果有则直接使用此令牌进行网络请求,没有则提示未登录,转到登陆注册界面。 此外,还可以在服务端或者客户端添加过期判别机制。
- token的作用 token可以显著减少服务端对用户表的查询,同时使用户不必每次都登陆,提高了系统的可用性与健壮性。
- 使用SharedPreferences保存token
|
1.创建应用
1 2 3 4 5
| 状态 正在审核 应用ID GCqPUbrIaoe7nUScRlet 应用私钥 YFJDhiYsnyI6qW8nzdAHYIPocZsPEff1 应用首页 https://fangjian98.github.io/ 回调地址 http://192.168.0.106/
|
2.OAuth2 获取 AccessToken,应用通过 AccessToken 访问 OpenApi 使用用户数据。
采用 OAuth2 协议 认证,开放 osc 移动 app 版本所有接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| 1.
https://www.oschina.net/action/oauth2/authorize?response_type=code&client_id=GCqPUbrIaoe7nUScRlet&redirect_uri=http://192.168.0.106/
http://192.168.0.106/?code=iap9LL&state=
2.
https://www.oschina.net/action/openapi/token?client_id=GCqPUbrIaoe7nUScRlet&client_secret=YFJDhiYsnyI6qW8nzdAHYIPocZsPEff1&grant_type=authorization_code&code=pZ6Ye2&redirect_uri=http://192.168.0.106/&dataType=json
{"access_token":"09a10176-7772-4577-8856-1b396f86e83b","refresh_token":"da728b79-3b0d-4062-961b-bd67c09ecbcd","uid":4470181,"token_type":"bearer","expires_in":604799}
3.使用AccessToken请求:参考OpenAPI文档即可
https://www.oschina.net/action/openapi/news_list?access_token=09a10176-7772-4577-8856-1b396f86e83b&catalog=2&page=1&pageSize=10&dataType=json
必选 类型及范围 说明 默认值 access_token true string oauth2_token获取的access_token catalog true int 1-所有|2-综合新闻|3-软件更新 1 page/pageIndex true int 页数 1 pageSize true int 每页条数 20 dataType true string 返回数据类型['json'|'jsonp'|'xml'] json
https://www.oschina.net/action/openapi/news_detail?id=188164&access_token=6983b81e-5e2e-4685-888f-36abcf3f2da7&dataType=json
必选 类型及范围 说明 默认值 id true long 新闻编号 空 access_token false string oauth2_token获取的access_token 传则显示是否收藏 用户未登录则不传 dataType false string 返回数据类型 ['json'|'jsonp'|'xml'] json
|
其他平台开放API
Json解析
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON格式取代了xml给网络传输带来了很大的便利,是最常见的数据返回类型。
常见的Json解析库
1 2 3 4 5 6 7 8
| Android给我们提供的Json解析类,官方提供的JSONArray与JSONObject 这些API都存在于org.json包下,而我们用到的类有下面这些: JSONObject: Json对象,可以完成Json字符串与Java对象的相互转换 JSONArray: Json数组,可以完成Json字符串与Java集合或对象的相互转换 JSONStringer: Json文本构建类,这个类可以帮助快速和便捷的创建JSON text, 每个 JSONStringer实体只能对应创建一个JSON text JSONTokener:Json解析类 JSONException:Json异常
|
[1] https://www.cnblogs.com/lushimei/p/13436096.html