如何从eBay API下载和解压缩文件

发布于 2025-01-21 06:35:04 字数 2235 浏览 3 评论 0 原文

我正在尝试从ebays api获取文件

我正在获取数据,但它无法正确解压缩或正确编码。它应该是一个gzip的XML文件。实际上,文档并不清楚。我正在使用RESTSHARP进行HTTP调用(106.15.0)。
例外: 在解码

我的代码时发现了无效的数据:

const string url = "sell/feed/v1/task/task-16-SOMENUMBER/download_result_file";
        var restClient = new RestClient(_restApiUrl)
        {
            Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(authentication.AuthorizationToken, "Bearer")
            
        };

        var httpRequest = new RestRequest(url, Method.GET);
        httpRequest.AddHeader("Accept-Encoding", "application/gzip");
        httpRequest.AddHeader("Accept", "*/*");
        byte[] myfile = restClient.DownloadData(httpRequest);
        var decodedString = Encoding.UTF8.GetString(myfile);
        using (var stream = new MemoryStream(myfile))
        {
            string res;
            using (GZipStream zipStream = new GZipStream(stream, CompressionMode.Decompress))
            {
                using (var sr = new StreamReader(zipStream))
                {
                    res = sr.ReadToEnd(); //ERROR HERE: Found invalid data while decoding
                }
            }
            var result = res;
        }

返回字符串的第一个30(encoding.default.getString(myfile)) pk \ u0003 \ u0004 \ u0014 \ 0 \ b \ b \ b \ b \ b \ b \ 0 \ f£†t \ t \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 0 \ 0 ActiveInVentoryReport

hex 50-4B-03-04-14-00-08-08-08-08-08-0C-A3-86-54-54-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00- 00-3E-00-00-00-41-63-74-69-76-65-49-6E-6E-65-65-65-6E-74-6F-72-72-79-79-79-52-65-65-70-6F-72-72-72-72-72-72-72-72- 74-2D-41-70-72-2D-30-36-2D-32-32-33-32-32-2D-32-32-32-32-32-32-34-34-3A-32-32-32-32-33-32-32-32D-30-37-37- 30-30-2d-31-33-33-34-39-39-39-38-35-35-32-34-2e-78-6d-6c-bd-9d-9d-5b-5b-53-53-53-9b-9b-47-b6-47-b6-86- AF-77-7E-45-CA-F7-32-7D-3E-3E-4C-79-3C-25-09-09-09-03-1E-C0-D6-48-38-38-38-38-38-60-DF-B1-8D-F6- 98-0A-01-17-86-4C-3C-BF-7E-F7-E1-

I am attempting to get a file from Ebays API
https://developer.ebay.com/api-docs/sell/feed/resources/task/methods/getResultFile#h2-samples

I am getting data back but it is not decompressing properly or encoding properly. It should be an gziped xml file. The documentation is not very clear on this actually. I am using RestSharp for my http calls (106.15.0).
Exception:
Found invalid data while decoding

My Code:

const string url = "sell/feed/v1/task/task-16-SOMENUMBER/download_result_file";
        var restClient = new RestClient(_restApiUrl)
        {
            Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(authentication.AuthorizationToken, "Bearer")
            
        };

        var httpRequest = new RestRequest(url, Method.GET);
        httpRequest.AddHeader("Accept-Encoding", "application/gzip");
        httpRequest.AddHeader("Accept", "*/*");
        byte[] myfile = restClient.DownloadData(httpRequest);
        var decodedString = Encoding.UTF8.GetString(myfile);
        using (var stream = new MemoryStream(myfile))
        {
            string res;
            using (GZipStream zipStream = new GZipStream(stream, CompressionMode.Decompress))
            {
                using (var sr = new StreamReader(zipStream))
                {
                    res = sr.ReadToEnd(); //ERROR HERE: Found invalid data while decoding
                }
            }
            var result = res;
        }

First 30 of returned string (Encoding.Default.GetString(myfile))
PK\u0003\u0004\u0014\0\b\b\b\0\f£†T\0\0\0\0\0\0\0\0\0\0\0\0>\0\0\0ActiveInventoryReport

Hex
50-4B-03-04-14-00-08-08-08-00-0C-A3-86-54-00-00-00-00-00-00-00-00-00-00-00-00-3E-00-00-00-41-63-74-69-76-65-49-6E-76-65-6E-74-6F-72-79-52-65-70-6F-72-74-2D-41-70-72-2D-30-36-2D-32-30-32-32-2D-32-30-3A-32-34-3A-32-30-2D-30-37-30-30-2D-31-33-33-34-39-39-38-35-32-34-2E-78-6D-6C-BD-9D-5B-53-9B-47-B6-86-AF-77-7E-45-CA-F7-32-7D-3E-4C-79-3C-25-09-03-1E-C0-D6-48-38-60-DF-B1-8D-F6-98-0A-01-17-86-4C-3C-BF-7E-F7-E1-

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文