gpt4 book ai didi

http - Google Apps 脚本中的 Cookie 处理 - 如何在 header 中发送 cookie?

转载 作者:可可西里 更新时间:2023-11-01 15:07:03 28 4
gpt4 key购买 nike

我正在尝试编写一个简单的脚本来从网页中获取文本并处理该字符串。但是,该网站要求我登录。我成功登录到该网站。这是我登录的方式:

var payload = {"name1":"val1","name2":val2"};

var opt ={"payload":payload,"method":"post"};

var respose = UrlFetchApp.fetch("http://website.com/login",opt);

登录后,网站将我置于http://website.com/home。我检查了 response.getContentText(),我可以确认我已经成功登录,因为它包含来自 http://website.com/home 的文本。现在我需要获取 http://website.com/page 的内容并处理它。我首先假设脚本可以自行处理 cookie,然后继续

var pagedata = UrlFetchApp.fetch("http://website.com/page);//Did not work

这显然不起作用,pagedata.getContentText() 让我先登录,这表明 cookie 没有成功传递..

然后我尝试提取服务器在登录期间响应的 cookie,并将其与此请求一起发送。

var cookie = response.getAllHeaders()['Set-Cookie'];     

// variable cookie now contains a legitimate cookie.

// It contains 'JSESSIONID=blabla;Path=/' and
// it is the ONLY cookie that server responds.

我试图在我的页面请求中发送该 cookie。

var header = {'Cookie':cookie};

var opt2 = {"header":header};

var pagedata = UrlFetchApp.fetch("http://website.com/page",opt2);

我认为即使现在 cookie 也没有正确发送,因为内容再次提示我要登录。

我是否正确地传递了 cookie?我需要有关在请求中发送 cookie 的正确方法的帮助。

最佳答案

您可以在此处找到 cookie 规范: http://www.w3.org/Protocols/rfc2109/rfc2109

您的代码中存在潜在问题:如果从服务器发回多个“set-cookie”属性,response.getAllHeaders()['Set-Cookie'] 可以返回字符串或字符串表。

Eric 是对的,你不能不消化它就返回 cookie。

代码中的第二个错误:

var opt2 = {"header":header};

应该是

var opt2 = {"headers":header};

另请注意,GAS 使用 Google IP。可能会发生两个连续的提取使用不同的 IP。您要连接的服务器可能取决于 session IP。

你确定服务器在认证后只给你发回一个cookie吗?

关于http - Google Apps 脚本中的 Cookie 处理 - 如何在 header 中发送 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869932/

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