C# 如何使用Restsharp下载Csv文件而不注销?

C# 如何使用Restsharp下载Csv文件而不注销?,c#,restsharp,C#,Restsharp,这是我的密码。 现在,当我运行代码时,Console.WriteLine到终端的输出是正确的,并且是我想要写入csv文件的内容。但是,当我在我的计算机上检查example.csv文件时,它只有登录页面的html表示我已注销。这里有什么问题 据我所知,使用cookiejar可以让我存储登录信息,即使有额外的请求,也应该让我保持登录状态 using System; using RestSharp; using RestSharp.Authenticators; using RestSharp.Ext

这是我的密码。 现在,当我运行代码时,Console.WriteLine到终端的输出是正确的,并且是我想要写入csv文件的内容。但是,当我在我的计算机上检查example.csv文件时,它只有登录页面的html表示我已注销。这里有什么问题

据我所知,使用cookiejar可以让我存储登录信息,即使有额外的请求,也应该让我保持登录状态

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

namespace Updater
{

class ScheduledBilling
{
    public static void report()
    {
        var client = new RestClient("http://example.com");
        client.CookieContainer = new System.Net.CookieContainer();
        client.Authenticator = new SimpleAuthenticator("username", "xxx", "password", "xxx");
        var request = new RestRequest("/login", Method.POST);


        client.DownloadData(new RestRequest("/file", Method.GET)).SaveAs("example.csv");

        IRestResponse response = client.Execute(request);

        Console.WriteLine(response.Content);
    }

}



class MainClass
{
    public static void Main(string[] args)
    {
        string test = "\r\n";
        ScheduledBilling.report();
        Console.Write(test);

    }
}


}

还有一个相关的小问题。当响应引用原始登录请求时,为什么它会在终端中执行并生成client.DownloadData中的新rest请求?

在尝试下载CSV之前,您没有执行登录请求。您的代码应该如下所示:

公共静态无效报告()
{
//创建客户端
var client=新的RestClient(“http://example.com");
client.CookieContainer=new System.Net.CookieContainer();
client.Authenticator=新的SimpleAuthenticator(“用户名”、“xxx”、“密码”、“xxx”);
//创建请求
var request=new RestRequest(“/login”,Method.POST);
//执行登录请求
var response=client.Execute(请求);
//这将执行一个单独的请求,从而创建一个新的请求
client.DownloadData(newrestrequest(“/file”,Method.GET)).SaveAs(“example.csv”);
Console.WriteLine(response.Content);
}

成功了!现在它保存到csv文件中。漂亮的解释是,writeline现在生成登录页面的html,而不是csv。如果没有为第二个请求分配变量,我将如何在终端中生成csv的内容?@edwrdkm看看这篇堆栈溢出文章