簡體   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