寻找连接到此服务并返回 xml 的帮助。
以下是说明(来自此处):
可以通过向端口 80(或设置中指定的端口)发送 XML 页面 state.xml 的请求来监控输入和继电器的状态。可以通过在端口 80(或设置中指定的端口)上向同一页面发送 GET 请求来控制继电器。这可以通过在 Web 浏览器的 URL 行中输入命令来证明。
请求当前状态:http://"ip address"/state.xml
...
如果在 WebRelay-DualTM 单元中启用了控制密码,并且通过浏览器请求 state.xml 页面,浏览器将提示用户输入密码。如果 XML 请求是从另一个应用程序而不是浏览器发送的,则 html 请求将需要包含使用 base 64 编码方案编码的密码。没有密码的 html 请求标头如下所示:
GET /state.xml?relay1State=1&noReply=1 HTTP/1.1 (Ends with two \r\n)
带有密码的 html 请求标头如下所示:
GET /state.xml?relay1State=1&noReply=1 HTTP/1.1(\r\n here) Authorization: Basic bm9uZTp3ZWJyZWxheQ== (Ends with two \r\n)
bm9uZTp3ZWJyZWxheQ==
用户名和密码的 base 64 编码版本在哪里none:webrelay
代码:
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);
}
任何帮助深表感谢。