最近需要从CSDN上获取些信息,所以发现了CSDN有一些开发的API,很好用,这里就慢慢总结了,今天首先实验的是获取博客系统分类,这个分类是CSDN系统自己的分类,并不是每个人博客的自定义分类。所以这个获取不需要用户信息验证。你也可以通过这个网址实现查看下CSDN博客专栏首页的系统分类(这里可能显示不完整。但是显示的都是系统分类)。博客专栏地址是:http://blog.csdn.net/column.html
截图如下:
根据CSDN的API:http://open.csdn.net/wiki/api/blog/getchannel
开始编写我们的代码:
/*******************************************************************************
* @project: JavaSE
* @package: com.burns.csdn.api
* @file: InvokeInterfaceGetNewArticleList.java
* @author: Administrator
* @created: 2017-5-16
* @purpose:
*
* @version: 1.0
*
* Revision History at the end of file.
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/
package com.burns.csdn.api;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class InvokeInterfaceGetNewArticleList {
public static void main(String[] args) throws Exception {
/**
* 用到的架包有: json-lib-2.4-jdk15.jar commons-lang-2.6.jar ezmorph-1.0.6.jar
* commons-logging-1.1.1.jar commons-collections-3.2.1.jar
* commons-beanutils-1.8.3.jar
*/
// 外接口路径
String urlStr = "http://api.csdn.net/blog/getchannel?client_id=1100309";
// 链接URL
URL url = new URL(urlStr);
// 返回结果集
StringBuffer document = new StringBuffer();
// 创建链接
URLConnection conn = url.openConnection();
// 读取返回结果集
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
document.append(line);
}
reader.close();
System.out.println(document);
// JSONObject json = JSONObject.fromObject(document.toString());
// 查看json格式
// System.out.println(json.toString());
// 获取json中某个对象
// JSONObject obj = (JSONObject) json.get("weatherinfo");
// System.out.println(obj.toString());
// 获取对象中某个属性的值
// String val = obj.getString("city");
// System.out.println(val);
}
}
/*******************************************************************************
* <B>Revision History</B><BR>
* [type 'revision' and press Alt + / to insert revision block]<BR>
*
*
*
* Copyright 2017 AcconSys All rights reserved.
******************************************************************************/
执行之后,结果如下:
[{"id":1,"name":"移动开发","alias":"mobile"},{"id":14,"name":"Web前端","alias":"web"},{"id":15,"name":"架构设计","alias":"enterprise"},{"id":16,"name":"编程语言","alias":"code"},{"id":17,"name":"互联网","alias":"www"},{"id":6,"name":"数据库","alias":"database"},{"id":12,"name":"系统运维","alias":"system"},{"id":2,"name":"云计算","alias":"cloud"},{"id":3,"name":"研发管理","alias":"software"},{"id":19,"name":"特约专家","alias":"invite"},{"id":8,"name":"行业名家","alias":"celebrity"},{"id":7,"name":"综合","alias":"other"},{"id":20,"name":"名誉专家","alias":"honour"}]
把结果和CSDN网站提供的一比对,果然一样:
CSDN给出的如下:(整理过格式了)
[{
"id": 1,
"name": "移动开发",
"alias": "mobile"
}, {
"id": 14,
"name": "Web前端",
"alias": "web"
}, {
"id": 15,
"name": "架构设计",
"alias": "enterprise"
}, {
"id": 16,
"name": "编程语言",
"alias": "code"
}, {
"id": 17,
"name": "互联网",
"alias": "www"
}, {
"id": 6,
"name": "数据库",
"alias": "database"
}, {
"id": 12,
"name": "系统运维",
"alias": "system"
}, {
"id": 2,
"name": "云计算",
"alias": "cloud"
}, {
"id": 3,
"name": "研发管理",
"alias": "software"
}, {
"id": 19,
"name": "特约专家",
"alias": "invite"
}, {
"id": 8,
"name": "行业名家",
"alias": "celebrity"
}, {
"id": 7,
"name": "综合",
"alias": "other"
}, {
"id": 20,
"name": "名誉专家",
"alias": "honour"
}]