我已经使用https://protogen.marcgravell.com/的gtfs-realtime.proto文件中的https://developers.google.com/transit/gtfs-realtime/gtfs-realtime.proto工具构建了c#类。
我使用以下方法从http://transitfeeds.com/p/king-county-metro/445/source提取供稿:
WebRequest request = WebRequest.Create("http://transitfeeds.com/p/king-county-metro/445/source");
FeedMessage feed = Serializer.Deserialize<FeedMessage>(request.GetResponse().GetResponseStream());
但是我用无效的导线类型击中了-我一辈子都看不到是怎么回事,这些类是从最新的原始文件生成的最新消息-请求来自URL时是否存在问题?
答案 0 :(得分:0)
http://transitfeeds.com/p/king-county-metro/445/source是GTFS-RT提要的纯文本快照,但是该工具需要一个实际的Protobuf GTFS-RT提要。
在这种情况下,您似乎需要request an API key from SoundTransit才能使用原始供稿。
答案 1 :(得分:0)
protobuf实际上有两种不同的格式; 原始格式为二进制。后来,添加了辅助json编码,该编码可用于相同的DSL。但是作为JSON,它的效率要比默认的二进制格式 far 低。
现在; protobuf-net 仅实现二进制编码。它看起来像您的供稿是JSON,在这种情况下,它不能与protobuf-net一起很好地工作。
如果有帮助,则Google实现同时支持二进制和JSON格式(protobuf-net只是protobuf规范的单独实现)。