你好我是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"?
答案 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);
});