繁体   English   中英

使用RestSharp下载文件时Null响应

[英]Null response when using RestSharp to download a file

我正在尝试在我的一个应用程序中更新 RestSharp 文件下载部分代码。 显然.SaveAs()被贬低了,所以我试图按照他们更新的例子来处理文件。 但是,我的响应始终是 null,并且创建的临时文件似乎没有填充我试图保存的数据。

这是我到目前为止所拥有的:

        var tempFile = Path.GetTempFileName();
        using var writer = File.OpenWrite(tempFile);

        var client = new RestClient("https://provider-api.spotify.com/v1/analytics");
        var request = new RestRequest("{licensor}/enhanced/tracks/{year}/{month}/{day}", Method.GET);
        request.AddHeader("Authorization", $@"Bearer {token}");
        request.AddUrlSegment("licensor", "licensor_name");
        request.AddUrlSegment("year", 2021);
        request.AddUrlSegment("month", 1);
        request.AddUrlSegment("day", 10);

        var checkResponse = client.Execute<SpotifyTracksResourceModel>(request);

        if (checkResponse.Content == "")
        {
            Console.WriteLine("No data");
        }

        request.ResponseWriter = responseStream =>
        {
            using (responseStream)
            {
                responseStream.CopyTo(writer);
            }
        };
        var response = client.DownloadData(request);

我投入了checkResponse代码以确保我实际上正在获取数据,并且我实际上正在获取数据。 但正如我所说,一旦到达var response =...行,它就会返回 NULL,并且没有任何内容写入该临时文件。

提前感谢您对此的任何帮助!

所以它最终是我需要调整的一些小东西的组合。 但最重要的是更新了 RestSharp NuGet package,并关闭了writer FileStream。

    var tempFile = Path.GetTempFileName();
    using var writer = File.OpenWrite(tempFile);

    var client = new RestClient("https://provider-api.spotify.com/v1/analytics");
    var request = new RestRequest("{licensor}/enhanced/tracks/{year}/{month}/{day}", DataFormat.Json)
            .AddUrlSegment("licensor", "licensor_name")
            .AddUrlSegment("year", "2021")
            .AddUrlSegment("month", "1")
            .AddUrlSegment("day", "10");
    
    spotifyRequest.AddHeader("Authorization", $@"Bearer {token}");
    var checkResponse = spotifyClient.Get<SpotifyTracksResourceModel>(spotifyRequest);

    request.ResponseWriter = responseStream =>
    {
        using (responseStream)
        {
            responseStream.CopyTo(writer);
        }
    };
    var response = client.DownloadData(request);
    writer.Close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM