是否可以更改用于Google Apps脚本UrlFetchApp.fetch
请求的用户代理字符串?
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增强功能。
答案 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