首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌应用程序脚本==> UrlFetchApp、方法GET和cookie

谷歌应用程序脚本==> UrlFetchApp、方法GET和cookie
EN

Stack Overflow用户
提问于 2014-12-15 06:05:52
回答 2查看 11K关注 0票数 3

我使用UrlFetchApp发送用户和pwd (方法POST)。获取cookie后,在其他请求中使用(方法GET)。但是这个新请求不起作用,我认为这个cookie在这个新请求中没有正确使用。有谁可以帮我?

代码语言:javascript
运行
复制
  var opt ={
    "method":"post",
    "User-Agent" : "Mozilla/5.0",
    "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language" : "en-US,en;q=0.5",    
    "payload": this.payload.toString(), 
    "followRedirects" : false
  };
  var response = UrlFetchApp.fetch("https://edas.info/addTopic.php?c=19349",opt);
  var resp1=response.getContentText();    
  Logger.log(resp1);  
  response.getResponseCode();

  var headers = response.getAllHeaders();
  var cookies = headers['Set-Cookie']; 
  for (var i = 0; i < cookies.length; i++) {
    cookies[i] = cookies[i].split( ';' )[0];
  };


  opt = {
    "method" : "get",
    "User-Agent" : "Mozilla/5.0",
    "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language" : "en-US,en;q=0.5",    
    "headers": {
      "Cookie": cookies.join(';')
    },
    "followRedirects" : false    
  };
  response = UrlFetchApp.fetch("https://edas.info/addTopic.php?c=19349", opt);
  var resp1=response.getContentText();  
  Logger.log(resp1);  
EN

回答 2

Stack Overflow用户

发布于 2017-09-04 07:15:55

首先,感谢您的代码片段,这让我开始在这样的脚本中处理cookie。我遇到了一个问题,可能是你的问题。有时,Web页面会返回一个cookies数组,然后您的代码就可以正常工作。有时它返回单个字符串(而不是一个字符串数组)。所以我不得不通过这样的测试来消除歧义:

代码语言:javascript
运行
复制
if ( (cookies != null) && (cookies[0].length == 1) ) {
      cookies = new Array(1);              
      cookies[0] = headers['Set-Cookie']; 
}
票数 2
EN

Stack Overflow用户

发布于 2014-12-25 20:26:38

我不能为你的问题提供具体的帮助,尽管如这里的Cookie handling in Google Apps Script - How to send cookies in header?所示

正如https://stackoverflow.com/users/1435550/thierry-chevillard所说:

也要知道GAS使用的是谷歌的IP地址。可能发生两个连续获取使用不同It的情况。您要连接的服务器可能与会话IP相关。

您的代码是否在本地开发服务器上运行,并且只有在部署到App Engine后才会失败?或者它也会在本地失败?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27474674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档