使用RestSharp下载文件时出现空响应

问题描述 投票:0回答:1

我正在尝试更新我的应用程序之一中的 RestSharp 文件下载部分代码。显然

.SaveAs()
已被弃用,因此我尝试按照 他们更新的示例 来处理文件。但是,我的响应始终为空,并且创建的临时文件似乎没有填充我尝试保存的数据。

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

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,并且没有任何内容写入该临时文件。

c# .net restsharp
1个回答
0
投票

所以它最终是我需要调整的一些小事情的组合。但最重要的事情是更新 RestSharp NuGet 包,并关闭

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();
© www.soinside.com 2019 - 2024. All rights reserved.