篮球即时比分api接口调用示例代码
摘要:分享篮球即时比分接口调用的示例代码,可查看在线调用文档,需注册下即时变化的比分数据获取返回内容这里为了方便测试我使用了一份本地文件,使用时应替换为真实接口返回内容返回数据如下部分
分享篮球即时比分api接口调用的示例代码,可查看在线调用文档,需注册下
package com.huaying.demo.basketball; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; /** * @API: 2.即时变化的比分数据 * @Website: https://www.feijing88.com */ public class BasketballChange { public static void main(String[] args) { try { String content = getContent(); JAXBContext jaxbContext = JAXBContext.newInstance(ChangeList.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); ChangeList list = (ChangeList) unmarshaller.unmarshal(new ByteArrayInputStream(content.getBytes())); list.getChangeList().forEach(System.out::println); } catch (Throwable t) { t.printStackTrace(); } } /** * 获取API返回内容 ** Note: 这里为了方便测试我使用了一份本地文件,使用时应替换为真实接口返回内容 */ private static String getContent() { try { StringBuilder builder = new StringBuilder(); List
lines = Files.readAllLines(Paths.get("./src/main/resources/BasketballChange.xml"), StandardCharsets.UTF_8); lines.forEach(line -> builder.append(line)); return builder.toString(); } catch (Throwable t) { t.printStackTrace(); return ""; } } @XmlRootElement(name = "c") public static class ChangeList { @XmlElement(name = "h") private List itemList; public List getChangeList() { return itemList.stream().map(s -> { Change change = new Change(); change.parse(s); return change; }).collect(Collectors.toList()); } } public static class Change { private String matchId; private int matchStatus; private String remainTime; private int homeScore; private int homeScoreFirst; private int homeScoreSecond; private int homeScoreThird; private int homeScoreFourth; private int homeScoreFirstOT; private int homeScoreSecondOT; private int homeScoreThirdOT; private int awayScore; private int awayScoreFirst; private int awayScoreSecond; private int awayScoreThird; private int awayScoreFourth; private int awayScoreFirstOT; private int awayScoreSecondOT; private int awayScoreThirdOT; public void parse(String data) { String[] values = data.split("^"); matchId = values[0]; matchStatus = parseInt(values[1]); remainTime = values[2]; homeScore = parseInt(values[3]); homeScoreFirst = parseInt(values[5]); homeScoreSecond = parseInt(values[7]); homeScoreThird = parseInt(values[9]); homeScoreFourth = parseInt(values[11]); homeScoreFirstOT = parseInt(values[16]); homeScoreSecondOT = parseInt(values[18]); homeScoreThirdOT = parseInt(values[20]); awayScore = parseInt(values[4]); awayScoreFirst = parseInt(values[6]); awayScoreSecond = parseInt(values[8]); awayScoreThird = parseInt(values[10]); awayScoreFourth = parseInt(values[12]); awayScoreFirstOT = parseInt(values[17]); awayScoreSecondOT = parseInt(values[19]); awayScoreThirdOT = parseInt(values[21]); } private int parseInt(String data) { return data == null || data.isEmpty() ? 0 : Integer.valueOf(data); } @Override public String toString() { return "Change{" + "matchId="" + matchId + """ + ", matchStatus=" + matchStatus + ", remainTime="" + remainTime + """ + ", homeScore=" + homeScore + ", homeScoreFirst=" + homeScoreFirst + ", homeScoreSecond=" + homeScoreSecond + ", homeScoreThird=" + homeScoreThird + ", homeScoreFourth=" + homeScoreFourth + ", homeScoreFirstOT=" + homeScoreFirstOT + ", homeScoreSecondOT=" + homeScoreSecondOT + ", homeScoreThirdOT=" + homeScoreThirdOT + ", awayScore=" + awayScore + ", awayScoreFirst=" + awayScoreFirst + ", awayScoreSecond=" + awayScoreSecond + ", awayScoreThird=" + awayScoreThird + ", awayScoreFourth=" + awayScoreFourth + ", awayScoreFirstOT=" + awayScoreFirstOT + ", awayScoreSecondOT=" + awayScoreSecondOT + ", awayScoreThirdOT=" + awayScoreThirdOT + "}"; } } }
API 返回数据如下(部分):
Change{matchId="358749", matchStatus=-1, remainTime="", homeScore=86, homeScoreFirst=28, homeScoreSecond=22, homeScoreThird=13, homeScoreFourth=23, homeScoreFirstOT=0, homeScoreSecondOT=0, homeScoreThirdOT=0, awayScore=52, awayScoreFirst=20, awayScoreSecond=11, awayScoreThird=14, awayScoreFourth=7, awayScoreFirstOT=0, awayScoreSecondOT=0, awayScoreThirdOT=0} Change{matchId="358761", matchStatus=2, remainTime="06:50", homeScore=20, homeScoreFirst=14, homeScoreSecond=6, homeScoreThird=0, homeScoreFourth=0, homeScoreFirstOT=0, homeScoreSecondOT=0, homeScoreThirdOT=0, awayScore=44, awayScoreFirst=31, awayScoreSecond=13, awayScoreThird=0, awayScoreFourth=0, awayScoreFirstOT=0, awayScoreSecondOT=0, awayScoreThirdOT=0}