我正在尝试使用Google Scripts UrlFetchApp来访问具有基本用户名和密码的网站。一旦我连接到该站点,就会出现需要身份验证的弹出窗口。我知道登录名和密码,但我不知道如何在UrlFetchApp中传递它们。
var response = UrlFetchApp.fetch(" htp://00.000.000.000:0000 /");
Logger.log(response.getContentText(" UTF-8&#34));
目前正在运行该代码会返回" Access Denied"。出于安全原因,上面的代码不包含我要连接的实际地址。 A" t"所有" http"在代码示例中因为它们被检测为链接而Stackoverflow不允许我提交两个以上的链接。
如何将登录名和密码与我的请求一起传递?无论如何我还可以在登录后继续我的会话吗?或者我的下一个UrlFetchApp请求是否会从另一台要求我再次登录的Google服务器发送?
此处的目标是登录Googles网络基础架构背后的网站,以便它可以充当代理,然后我需要向相同的地址发出另一个UrlFetchApp请求,如下所示:
var response = UrlFetchApp.fetch(" htp://00.000.000.000:0000 / vuze / rpc?json = {" method":" torrent-add" "参数&#34 ;: {"文件名":" HTP://vodo.net/media/torrents/anything.torrent","下载-DIR& #34;:" C:\ temp中"}}&#34);
Logger.log(response.getContentText(" UTF-8&#34));
答案 0 :(得分:48)
此问题已在其他地方得到解答。 以下是摘要:
布鲁斯麦克弗森
basic authentication looks like this... var options = {}; options.headers = {"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)};
Lenny Cunningham
//Added Basic Authorization////////////////////////////////////////////////////////////////////////////////////////// var USERNAME = PropertiesService.getScriptProperties().getProperty('username'); var PASSWORD = PropertiesService.getScriptProperties().getProperty('password'); var url = PropertiesService.getScriptProperties().getProperty('url');//////////////////////////Forwarded
WebRelay的端口
var headers = { "Authorization" : "Basic " + Utilities.base64Encode(USERNAME + ':' + PASSWORD) }; var params = { "method":"GET", "headers":headers }; var reponse = UrlFetchApp.fetch(url, params);
答案 1 :(得分:6)
我无法找到user3586062的源链接(它们可能已被删除),但采用Bruce Mcpherson的方法,您的代码将如下所示:
var options = {};
options.headers = {"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)};
UrlFetchApp.fetch("TARGET URL GOES HERE", options);