这篇博客主要记录申请API,解析API返回的json数据,然后将需要的数据呈现到网页上。
一、申请聚合数据提供的NBA赛事的API。
二、创建自己的类,并复制API提供的接口方法。
package com.example.demo.match;
import com.example.demo.matchBean.ListObject;
import com.example.demo.teammatchBean.TeamListObject;
import com.example.demo.teammatchBean.TeamListObject2;
import net.sf.json.JSONObject;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class APItest {
public static final String DEF_CHATSET = "UTF-8";
public static final int DEF_CONN_TIMEOUT = 30000;
public static final int DEF_READ_TIMEOUT = 30000;
public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
//配置您申请的KEY
public static final String APPKEY ="0dfc5ed27e20ed3b98f029ff9751a34c";
//1.NBA常规赛赛程赛果
public static List<ListObject> getRequest1(){
String result =null;
String url ="http://op.juhe.cn/onebox/basketball/nba";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key",APPKEY);//应用APPKEY(应用详细页查询)
params.put("dtype","");//返回数据的格式,xml或json,默认json
try {
result =net(url, params, "GET");
JSONObject object = JSONObject.fromObject(result);
if(object.getInt("error_code")==0){
// System.out.println(object.get("result"));
return (new ResolveJson()).resolve1(result);
}else{
System.out.println(object.get("error_code")+":"+object.get("reason"));
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//2.球队赛程赛事查询
public static List<TeamListObject2> getRequest2(String teamname){
String result =null;
String url ="http://op.juhe.cn/onebox/basketball/team";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key",APPKEY);//应用APPKEY(应用详细页查询)
params.put("dtype","");//返回数据的格式,xml或json,默认json
params.put("team",teamname);//球队名称
System.out.println(teamname);
try {
result =net(url, params, "GET");
JSONObject object = JSONObject.fromObject(result);
if(object.getInt("error_code")==0){
return (new ResolveJson()).resolve2(result);
}else{
System.out.println(object.get("error_code")+":"+object.get("reason"));
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//3.球队对战赛赛程查询
public static List<TeamListObject2> getRequest3(String teamname1,String teamname2){
String result =null;
String url ="http://op.juhe.cn/onebox/basketball/combat";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key",APPKEY);//应用APPKEY(应用详细页查询)
params.put("dtype","");//返回数据的格式,xml或json,默认json
params.put("hteam",teamname1);//主队球队名称
params.put("vteam",teamname2);//客队球队名称
try {
result =net(url, params, "GET");
JSONObject object = JSONObject.fromObject(result);
if(object.getInt("error_code")==0){
return (new ResolveJson()).resolve2(result);
}else{
System.out.println(object.get("error_code")+":"+object.get("reason"));
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
getRequest1();
}
/**
*
* @param strUrl 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 网络请求字符串
* @throws Exception
*/
public static String net(String strUrl, Map params,String method) throws Exception {
HttpURLConnection conn = null;
BufferedReader reader = null;
String rs = null;
try {
StringBuffer sb = new StringBuffer();