złe żądanie z UrlFetchApp
Szukasz pomocy przy łączeniu się z tą usługą i zwracaniu xml.
Oto instrukcje (ztutaj):
Stan wejść i przekaźników można monitorować, wysyłając żądanie do portu 80 (lub portu określonego w ustawieniach) dla strony XML state.xml. Przekaźniki można kontrolować, wysyłając żądania GET na tę samą stronę na porcie 80 (lub porcie określonym w ustawieniach). Można to wykazać, wprowadzając polecenia w wierszu adresu URL przeglądarki internetowej.
Zażądaj bieżącego stanu: http: // „adres IP” /state.xml
...
Jeśli hasło sterujące jest włączone w urządzeniu WebRelay-DualTM i żądana jest strona state.xml przez przeglądarkę, przeglądarka poprosi użytkownika o hasło. Jeśli żądanie XML zostanie wysłane z innej aplikacji, a nie z przeglądarki, żądanie html będzie musiało zawierać hasło zakodowane przy użyciu schematu kodowania podstawowego 64. Nagłówek żądania html bez hasła wygląda tak:
GET /state.xml?relay1State=1&noReply=1 HTTP/1.1 (Ends with two \r\n)
Nagłówek żądania html z hasłem wygląda następująco:
GET /state.xml?relay1State=1&noReply=1 HTTP/1.1(\r\n here)
Authorization: Basic bm9uZTp3ZWJyZWxheQ== (Ends with two \r\n)
gdziebm9uZTp3ZWJyZWxheQ==
jest podstawową zakodowaną wersją nazwy użytkownika i hasła none: webrelay
Kod:
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);
}
Każda pomoc jest bardzo ceniona.