schlechte Anfrage mit UrlFetchApp
Suchen Sie Hilfe beim Herstellen einer Verbindung zu diesem Dienst und beim Zurückgeben der XML-Datei.
Hier sind die Anweisungen (vonHier):
Der Status der Eingänge und Relais kann überwacht werden, indem eine Anforderung für die XML-Seite state.xml an Port 80 (oder den im Setup angegebenen Port) gesendet wird. Die Relais können gesteuert werden, indem GET-Anforderungen an dieselbe Seite an Port 80 (oder an den in Setup angegebenen Port) gesendet werden. Dies kann durch Eingabe von Befehlen in die URL-Zeile eines Webbrowsers demonstriert werden.
Fordern Sie den aktuellen Status an: http: // "ip address" /state.xml
...
Wenn das Steuerungskennwort im WebRelay-DualTM-Gerät aktiviert ist und die Seite state.xml über einen Browser angefordert wird, fordert der Browser den Benutzer zur Eingabe des Kennworts auf. Wenn die XML-Anforderung von einer anderen Anwendung und nicht von einem Browser gesendet wird, muss die HTML-Anforderung das Kennwort enthalten, das mit dem Basis-64-Codierungsschema codiert wurde. Der HTML-Anforderungsheader ohne das Kennwort sieht folgendermaßen aus:
GET /state.xml?relay1State=1&noReply=1 HTTP/1.1 (Ends with two \r\n)
Der HTML-Anforderungsheader mit dem Kennwort sieht folgendermaßen aus:
GET /state.xml?relay1State=1&noReply=1 HTTP/1.1(\r\n here)
Authorization: Basic bm9uZTp3ZWJyZWxheQ== (Ends with two \r\n)
woherbm9uZTp3ZWJyZWxheQ==
ist die Base 64-codierte Version des Benutzernamens und des Passworts none: webrelay
Code:
function webRelay(){
//working url http://75.65.130.27/state.xml
var url = 'http://75.65.130.27/';
var params = encodeURIComponent('state.xml');
Logger.log(params);
var headers = {
"Authorization" : "Basic" + Utilities.base64Encode('none:webrelay')
};
var options =
{
"method" : "get",
"headers" : headers
};
var state = UrlFetchApp.fetch(url+params, options);
Logger.log('1: '+state);
Logger.log(parse(state));
}
function parse(txt) {
var doc = Xml.parse(txt, true);
}
Jede Hilfe wird sehr geschätzt.