【发布时间】:2017-02-28 14:41:51
【问题描述】:
我正在与 Web API 交谈以获取
的响应数据https://api.transport.nsw.gov.au/v1/gtfs/schedule/ferries
它基于 protobuf 架构
string authorization = "apikey *******************";
所以,如果您想尝试一下,您可以创建一个免费的 API 密钥或使用我获得的 SAMPLE 压缩文件,然后尝试使用 C# 对其进行解压缩或反序列化
示例代码位于:this link
我可以获取网络响应流,当我使用 Postman 执行此操作并将其下载为“压缩”文件时,当我解压缩文件时,我会得到很多包含我正在查找的数据的 XML 文件,但是尝试使用代码执行此操作时,我总是会出错,尝试了很多方法,其中一种方法如下
FeedMessage feed = DeserializeCompressed<FeedMessage>(webResponse.GetResponseStream());
public static T DeserializeCompressed<T>(Stream stream, JsonSerializerSettings settings = null)
{
using (var compressor = new GZipStream(stream, CompressionMode.Decompress))
using (var reader = new StreamReader(compressor))
using (var jsonReader = new JsonTextReader(reader))
{
var serializer = JsonSerializer.CreateDefault(settings);
return serializer.Deserialize<T>(jsonReader);
}
}
我想知道如何解压缩这个 zip 文件流并将其反序列化为强类型 C# 类
【问题讨论】:
-
请用您所做的更新您的问题。这是不完整的。
-
我确实不会给你认证,你可以尝试创建一个免费的 API 密钥,或者你可以帮助我说明如何解压缩/反序列化 Web 响应,就这么简单,它有与网址无关!!!
-
从响应中获取的 ZIPPED 文件的示例是否可以使用 C# 对其进行解压缩和反序列化? mediafire.com/file/8fib27mg7b8fkda/response.zip
标签: c# asp.net web-services rest deserialization