如何使用 RestSharp 下载文件?具体我传递给请求什么?
How to download files using RestSharp? Specifically what do I pass to request?
你好,我是 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”吗?
您可以使用 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);
});
你好,我是 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”吗?
您可以使用 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);
});