用JAVA语言来实现经过站点的所有车次信息的查询的主要代码
时间: 2023-03-19 07:21:48 浏览: 122
以下是使用JAVA语言实现查询经过站点的所有车次信息的主要代码:
1. 导入必要的类库和包
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONObject;
```
2. 设置要查询的站点和日期
```java
String station = "北京"; // 设置要查询的站点
String date = "2023-03-01"; // 设置要查询的日期
```
3. 构造查询请求的URL并发送请求
```java
String url = "https://api.12306.com/v1/train/trainInfos?"
+ "arrStation=" + station
+ "&depStation=" + station
+ "&startDate=" + date;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
JSONObject jsonObj = new JSONObject(response.toString());
JSONArray trainList = jsonObj.getJSONArray("data");
for (int i = 0; i < trainList.length(); i++) {
JSONObject train = trainList.getJSONObject(i);
String trainNo = train.getString("trainNo");
String trainName = train.getString("trainName");
System.out.println(trainNo + " " + trainName);
}
} else {
System.out.println("查询失败");
}
```
4. 解析查询结果并输出车次信息
以上代码通过发送一个GET请求,向12306的API接口查询经过指定站点和日期的所有车次信息。查询结果为JSON格式的字符串,通过解析JSON字符串可以获取到所有的车次信息,包括车次号、车次名称等。最后,将车次信息输出到控制台。
请注意,由于12306的API接口是实时更新的,以上代码仅供参考,具体的实现方式可能需要根据实际情况进行修改。