如何使用 - 运输总线实时数据访问



我访问此网站(http://www.calgarytransit.com/survey/survey/realtim-time-data-access(以申请实时数据访问。成功应用后,我得到了以下内容的回复:

感谢您注册访问我们的实时数据。你可以 通过以下链接访问实时数据:

http://transitdata.calgary.ca/ctransit/tripupdates.pb

http://transitdata.calgary.ca/ctransit/alerts.pb

http://transitdata.calgary.ca/ctransit/vehiclepositions.pb

我看到带有扩展名.pb的URL,但不确定如何使用它们。因此,我只是将URL粘贴到浏览器中,然后收到此错误消息:

服务器错误

404-找不到文件或目录。您正在寻找的资源 可能已被删除,名字更改或暂时 不可用。

您可以帮忙吗?

我也处于同样的情况。经过一些R& D之后,我了解了协议缓冲区。然后,我在C#中创建了一种访问这些API的方法。我正在与您分享我的解决方案。您一定会得到一些提示。
string url = "<Your url>.pb"; HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(string.Format(url)); webReq.Method = "GET"; NetworkCredential networkCredential = new NetworkCredential("user_name", "password"); CredentialCache myCredentialCache = new CredentialCache { { new Uri(url), "Basic", networkCredential } }; webReq.PreAuthenticate = true; webReq.Credentials = myCredentialCache; HttpWebResponse webResponse = (HttpWebResponse)webReq.GetResponse(); Stream answer = webResponse.GetResponseStream(); StreamReader _recivedAnswer = new StreamReader(answer); FeedMessage message = ProtoBuf.Serializer.Deserialize<FeedMessage>(_recivedAnswer.BaseStream);
代码在C#中。在这里,我想获得响应并使用ProtoBuff.Serializer进行响应。我需要两个Nuget软件包。一个是Protobuf-net,用于Protobuf和GTFSRealTimeBindings for FeedMessage。
有关更多详细信息,请访问以下链接。

  1. http://www.c-sharpcorner.com/article/serialization-andialization-and-deserialization-ib-c-sharp-using-protobuf-dll/
  2. https://developers.google.com/transit/gtfs-realtime/examples/dotnet-sample
  3. https://developers.google.com/transit/gtfs-realtime/gtfs-realtime-proto
  4. http://www.codeguru.com/columns/dotnet/working-with-google-protocol-buffers-buffers-buffers-buffers-and-.net.html

最新更新