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.

questionAnswers(1)

yourAnswerToTheQuestion