gpt4 book ai didi

java - 如何在 URLConnection 中发送 cookie?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:33 29 4
gpt4 key购买 nike

通过 URLConnection 发送“完整”cookie 的正确方法是什么?

我一直在使用:

URL url = new URL(page);  
URLConnection urlConn = url.openConnection();

urlConn.setRequestProperty("Cookie", myCookie);

urlConn.setUseCaches(true);

urlConn.connect();

myCookie 的值为testCookie=d1lEZk9rSHd3WnpBd2JkWGRhN1RYdz09OkEwQ21pSFJVZzBpVDhhUENaK3ZPV2c9PQ

有没有办法用它发送 Path、Domain 和 Expires?您是否需要以某种方式对值进行编码?

最佳答案

This (currently accepted) answer是错误的 - 对于 http clients 你使用 ; 多个 cookie 值的分隔符,因此他的示例实际上发送了三个 cookie:

  • user=mary17
  • domain=airtravelbargains.com
  • path=/autos

如果我们谈论的是服务器响应和 Set-Cookie header ,答案是正确的,但我们不是 - urlconnection 用于客户端连接到服务器。

那么 Domain 呢? , Expires , Path那你要的信息呢?问题是,您不打算发送该信息。 Path、Domain 和 Expires 只是要发送到浏览器(或任何其他 HTTP 客户端)的指令,因为它们是针对客户端的指令。您只打算将有效的 cookie 发送到服务器,因此无法发送您要求的信息,因为它没有任何意义。

您可以通过浏览浏览器中的任何 HTTP session 自己看到这一点。浏览器只会发送这样的东西:

Cookie: cookiename=value; anothercookie=othervalue;

这是应该的。

或者,您可以检查 RFC 6265 ,您可以从目录中直接看到 Domain , Expires , PathSet-Cookie 的属性 header (发送到浏览器),不是 Cookie header (由浏览器或其他 http 客户端发送到服务器)。

关于java - 如何在 URLConnection 中发送 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761273/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com