如何使用RestSharp下载文件?具体来说,我要求传递什么?

时间:2018-01-22 17:27:28

标签: c# restsharp

你好我是c#的新手,我很难找到我必须做的事情才能在登录后下载文件。 到目前为止,这是我的代码。

using System;
using RestSharp;
using RestSharp.Authenticators;
using RestSharp.Extensions;

namespace Updater
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            var client = new RestClient("xxxxxx");
            client.CookieContainer = new System.Net.CookieContainer();
            client.Authenticator = new SimpleAuthenticator("xxxx", "xxx", "xxx", "xxxx");
            var request = new RestRequest("/login", Method.POST);


            client.ExecuteAsync(request, response =>
            {
                Console.WriteLine(response.Content);
            });

            Console.ReadLine();
            Console.ReadKey();
        }




    }
}

现在我知道,为了下载我想要的文件,我必须使用这段代码。

client.DownloadData(request).SaveAs(path)

我如何实际使用它?请求是什么,我可以将路径列为"〜/ Desktop"?

1 个答案:

答案 0 :(得分:1)

您可以使用Environment.SpecialFolder.Desktop找到桌面文件夹。此外,如果您使用应用身份验证的同一客户端,则站点仍然是登录的客户端,因为客户端在登录过程后存储身份验证cookie。所以,要下载文件;

var path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
client.DownloadData(new RestRequest("/path/download.txt", Method.GET)).SaveAs(path);

此外,您的代码剪辑缺少await异步方法;

await client.ExecuteAsync(request, response =>
{
    Console.WriteLine(response.Content);
});

如果您不想使用async,只需按此方式调用该方法;

client.Execute(request, response =>
{
    Console.WriteLine(response.Content);
});