Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#HttpClient未显示所有cookie_C#_.net_Cookies_Session Cookies_.net Core - Fatal编程技术网

C#HttpClient未显示所有cookie

C#HttpClient未显示所有cookie,c#,.net,cookies,session-cookies,.net-core,C#,.net,Cookies,Session Cookies,.net Core,编辑:我为我的困惑道歉:我正在试图刮一个我没有写的网站;我不是在写ASP应用程序。我只想刮一个 在向登录页面发出post请求后,我尝试从另一个页面读取cookies。然而,我并没有看到我期望的所有饼干。我的代码如下: // Downloads login cookies for subsequent requests public async Task<CookieContainer> loginCookies() { var cookies = new CookieCont

编辑:我为我的困惑道歉:我正在试图刮一个我没有写的网站;我不是在写ASP应用程序。我只想刮一个

在向登录页面发出post请求后,我尝试从另一个页面读取cookies。然而,我并没有看到我期望的所有饼干。我的代码如下:

// Downloads login cookies for subsequent requests
public async Task<CookieContainer> loginCookies()
{
    var cookies = new CookieContainer();
    var handler = new HttpClientHandler {
        UseCookies = true,
        AllowAutoRedirect = true,
        CookieContainer = cookies
    };

    var client = new HttpClient(handler);
    var loginUri = new Uri("https://connect.example.edu/login.aspx");

    var credentials = new Dictionary<string, string> {
        {"example$txtUsername", this.Username},
        {"example$txtPassword", this.Password}
    };

    var formCredentials = new FormUrlEncodedContent(credentials);
    await client.PostAsync(loginUri, content: formCredentials);

    var pointsUri = new Uri("https://info.example.edu/");

    Console.WriteLine("COOKIES:");
    foreach (Cookie cookie in cookies.GetCookies(pointsUri))
        Console.WriteLine($"{cookie.Name} --> {cookie.Value}");

    return cookies;
}
//为后续请求下载登录cookie
公共异步任务loginCookies()
{
var cookies=新的CookieContainer();
var handler=新的HttpClientHandler{
UseCookies=true,
AllowAutoRedirect=true,
CookieContainer=cookies
};
var client=新的HttpClient(处理程序);
var loginUri=新Uri(“https://connect.example.edu/login.aspx");
var凭证=新字典{
{“示例$txtUsername”,this.Username},
{“example$txtPassword”,this.Password}
};
var formCredentials=新FormUrlEncodedContent(凭证);
wait client.PostAsync(loginUri,内容:formCredentials);
var pointsUri=新Uri(“https://info.example.edu/");
控制台。WriteLine(“COOKIES”);
foreach(cookies中的cookies.GetCookies(pointsUri))
WriteLine($“{cookie.Name}-->{cookie.Value}”);
归还饼干;
}
我相信这个错误是由于
loginUri
pointsUri
有不同的子域造成的。我需要刮取的信息存在于
pointsUri
页面,但登录存在于
loginUri


我特别缺少的cookie是
ASP.NET\u SessionID

要在子域之间共享cookie,这些域的服务器代码可能应该设置cookie的域属性(例如,设置为.example.edu)。不管怎样,如果你能控制它。参考:我正试图刮现有的网站(我没有写)。我相信链接的站点是用于管理服务器端的cookie,对吗?你能发布第一个url的请求和响应吗?@davenportw15链接主要用于服务器端管理是的,因为行为良好的http客户端不会与另一个域(或子域)共享域的cookie。。也许你可以在不使用httpclient的情况下发出一个更原始的tcp请求,然后你可以缓存/刮取/重用任何你喜欢的东西。一路上,我发现中间重定向使用js提交表单作为刮取的预防措施。发布到该页面的结果设置了JSESSIONID,这在我看来很奇怪。那不是雄猫吗?@GerardoGrignoli,您是否需要任何特定信息?要在子域之间共享cookie,这些域的服务器代码可能应该设置cookie的域属性(例如,设置为.example.edu)。不管怎样,如果你能控制它。参考:我正试图刮现有的网站(我没有写)。我相信链接的站点是用于管理服务器端的cookie,对吗?你能发布第一个url的请求和响应吗?@davenportw15链接主要用于服务器端管理是的,因为行为良好的http客户端不会与另一个域(或子域)共享域的cookie。。也许你可以在不使用httpclient的情况下发出一个更原始的tcp请求,然后你可以缓存/刮取/重用任何你喜欢的东西。一路上,我发现中间重定向使用js提交表单作为刮取的预防措施。发布到该页面的结果设置了JSESSIONID,这在我看来很奇怪。那不是雄猫吗?你想要什么具体的信息吗,@GerardoGrignoli?