当前位置:   article > 正文

java调用《上海发布》接口,获取特定公交到站信息_实时公交到站时间api

实时公交到站时间api

 

1.目的

冬天到了,楼下759路公交一班20min,实在难受。 微信上的上海发布能看到站时间,感觉还是麻烦,所以用java调用了一下接口,需要看的时候,运行一下代码就行。偷偷懒。

2.步骤

1.搜索官网

上海发布官网

 

2.输入车辆名称

 

3.查看信息

这时候你会发现点击站台信息, 下拉框没有像在手机上面那样展开

你得切换成设备模式,在下面有切换方法

 

4.查找request请求

1.打开“检查”/ 按F12

查看

2.切换设备模式

这时候就能点开了

3.获取request

 

4.分析返回的信息

[{"@attributes":{"cod":"759\u8def"},"terminal":"\u6caaD-P0705","stopdis":"7","distance":"4302","time":"561"}]

可以确定:

返回的是json数组(有中括号)

distance是到站距离(m)

time是到站时间(s)

 

4.获得有用信息

URL

  1. Request URL:
  2. https://shanghaicity.openservice.kankanews.com/public/bus/Getstop

必要传递信息

sid:应该指代具体车辆代号

  1. stoptype: 0
  2. stopid: 10.
  3. sid: 7019f275eae92b302744ade1ac88763a

 

5.使用java代码请求数据

1. 公交信息实体bean

 

  1. package com.ybj.cbt.Learn.ThinkingInJava.Ch18.FIleDownload;
  2. import lombok.Getter;
  3. import lombok.Setter;
  4. @Getter
  5. @Setter
  6. public class BusInfo {
  7. String attributes;
  8. String terminal;
  9. long stopdis;
  10. String distance;
  11. String time;
  12. }

 

2.java代码

注意:

返回的是JSONArray  ,是一个json对象数组,所以只能用数组解析

  1. package com.ybj.cbt.Learn.ThinkingInJava.Ch18.FIleDownload;
  2. import org.apache.commons.io.IOUtils;
  3. import org.springframework.boot.configurationprocessor.json.JSONArray;
  4. import org.springframework.boot.configurationprocessor.json.JSONObject;
  5. import java.net.HttpURLConnection;
  6. import java.net.URL;
  7. /**
  8. * @Author getJson
  9. * @Description //TODO $
  10. * @Date $ $
  11. * @Param $
  12. * @return $
  13. **/
  14. public class GetBusInfo {
  15. public static void main(String[] args) throws Exception {
  16. String path="https://shanghaicity.openservice.kankanews.com/public/bus/Getstop?stoptype=0&stopid=10.&sid=7019f275eae92b302744ade1ac88763a";
  17. BusInfo busInfo = HttpURLConnection_GET(path);
  18. System.out.println("亲,759还有"+ Long.valueOf(busInfo.getTime()) /60+"分钟到达顾戴路秀波路 ,距离:"
  19. +busInfo.getDistance()+"m");
  20. }
  21. public static BusInfo HttpURLConnection_GET(String path)throws Exception{
  22. BusInfo busInfo=new BusInfo();
  23. URL url=new URL(path);
  24. HttpURLConnection conn=(HttpURLConnection) url.openConnection();
  25. conn.setRequestMethod("POST");
  26. conn.setConnectTimeout(5000);
  27. if(conn.getResponseCode()==200){
  28. String jsonString = IOUtils.toString(conn.getInputStream(), "utf-8");
  29. JSONArray jsonArray=new JSONArray(jsonString);
  30. for(int i=0;i<jsonArray.length();i++){
  31. JSONObject jsonObject = jsonArray.getJSONObject(i);
  32. busInfo.setDistance(jsonObject.getString("distance"));
  33. busInfo.setTime(jsonObject.getString("time"));
  34. }
  35. }
  36. return busInfo;
  37. }
  38. }

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号