我正在开发一个C# httpwebrequest,通过发送编码为https协议中的链接的ID和PW值来接收登录的会话值和其他返回值。
如果登录成功,会返回特定的cookie。 但是,无论我对 C# httpwebrequest 做什么,cookie 都没有返回。 即使使用 python 请求,也没有返回。 对比chrome浏览器网络记录,发送的内容和标题都是正确的。
之后使用java httpsurlconnection
使用上面的链接请求具有相同标头和内容的 POST 方法
登录成功,登录正确完成,并返回特定的cookie。 我很高兴,但是在 java httpsurlconnection 成功之后,我必须知道为什么 httpsurlconnection 成功。
即使我用 C# httpwebrequest 和 python requests 再次尝试,这不起作用,但在 java httpsurlconnection 成功后我可以正常登录...为什么..
我试图研究为什么它不起作用,但我很尴尬。
java httpsurlconnection 如何影响我的电脑?
我英语说得不太好..谢谢你的阅读。
通过发送 post 请求,我试图接收登录完成后返回的特定 cookie。 我一直在使用 c# httpwebrequest、python requests 但没有得到我想要的结果。 最后,让我们使用 java httpsurlconnection 并获得所需的结果。
开始之前,来自 dotnet API 文档,
WebRequest、HttpWebRequest、ServicePoint 和 WebClient 已过时,您不应该将它们用于新开发。请改用 HttpClient。
您应该提供
HttpClientHandler
与 CookieContainer
和 UseCookies = true
到 HttpClient
才能使用 cookie。
例如,我使用 csharprepl 来使用和可视化结果。
> var cookieContainer = new CookieContainer();
> var handler = new HttpClientHandler
{
CookieContainer = cookieContainer,
UseCookies = true,
};
> var client = new HttpClient(handler);
> var response = await client.GetAsync("https://google.com/");
> cookieContainer.GetAllCookies()
CookieCollection(2)
┌──────┬──────────────────────────────────────────────────────────────────────────────────┬────────┐
│ Name │ Value │ Type │
├──────┼──────────────────────────────────────────────────────────────────────────────────┼────────┤
│ [0] │ AEC=[REDACTED] │ Cookie │
│ [1] │ NID=[REDACTED] │ Cookie │
└──────┴──────────────────────────────────────────────────────────────────────────────────┴────────┘