使用自定义用户代理字符串的UrlFetch?

时间:2013-02-25 12:54:15

标签: google-apps-script user-agent

是否可以更改用于Google Apps脚本UrlFetchApp.fetch请求的用户代理字符串?

来自2010年的

This discussion暗示Google Apps脚本中的UrlFetch模块支持将User-Agent标头添加到可选的headers集合中,就像Google App Engine的UrlFetch模块一样。但是,the GAS documentation对此没有任何说明。我制作的测试脚本也显示它不起作用。

测试脚本:

function testUserAgentString(){
  var page;
  try {
    page = UrlFetchApp.fetch('http://www.myuseragent.net/', {headers: {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"}}).getContentText();
    Logger.log(page);
  } catch(_) {}
}

日志输出(减去不相关的HTML)是:

Mozilla/5.0 (compatible; GoogleDocs; script; +http://docs.google.com)

这是GAS执行UrlFetch请求时使用的默认用户代理字符串。

我错过了什么或做错了什么?

编辑:由于目前无法做到这一点,因此根据Arun的建议,我在问题跟踪器上添加了request增强功能。

2 个答案:

答案 0 :(得分:6)

今天不可能。请在Issue Tracker上记录您的用例的增强请求,以便对此进行审核和考虑。

答案 1 :(得分:0)

您可以通过以下方式使用UrlFetchApp发送标头信息:

var url = "http://mymagentohost/api/rest/products?limit=2"

var params = { 
  headers: { 'Content-Type': "application/json", 'Accept': "application/json",
             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'},
  muteHttpExceptions: true,
  method: "GET",
  contentType: "application/json",
  validateHttpsCertificates: false,
};

var response = UrlFetchApp.fetch(url, params);

只需在标题部分添加用户代理信息。希望对您有帮助!

信用额度为:Aditya Advani