This is an example of how to use Robot Web Services, XML and C#.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Xml;
using System.Xml.Linq;
namespace HelloControllerXml
{
class Program
{
private CookieContainer _cookies = new CookieContainer();
private NetworkCredential _credentials = new NetworkCredential("Default User", "robotics");
static void Main(string[] args)
{
Program ctrl = new Program();
{
Stream xml = ctrl.GetSystemResource("http://192.168.8.105");
ctrl.DisplayData(xml);
xml.Close();
}
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
Stream GetSystemResource(string host)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(host + "/rw/system"));
request.Credentials = _credentials;
request.Proxy = null;
request.Method = "GET";
request.CookieContainer = _cookies;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return response.GetResponseStream();
}
void DisplayData(Stream xmldata)
{
XmlDocument doc = new XmlDocument();
doc.Load(xmldata);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("ns", "http://www.w3.org/1999/xhtml");
XmlNodeList sysNodes = doc.SelectNodes("//ns:li[@class='sys-system-li']", nsmgr);
foreach(XmlNode sysNode in sysNodes)
{
XmlNode systemNameNode = sysNode.SelectSingleNode("ns:span[@class='name']", nsmgr);
XmlNode systemVersionNode = sysNode.SelectSingleNode("ns:span[@class='rwversion']", nsmgr);
XmlNode systemVersionNameNode = sysNode.SelectSingleNode("ns:span[@class='rwversionname']", nsmgr);
Console.WriteLine("system={0} version={1} versionname={2}", systemNameNode.InnerText.ToString(), systemVersionNode.InnerText.ToString(), systemVersionNameNode.InnerText.ToString());
}
XmlNodeList optionNodes = doc.SelectNodes("//ns:li[@class='sys-option-li']", nsmgr);
foreach (XmlNode optNode in optionNodes)
{
XmlNode systemOptionNode = optNode.SelectSingleNode("ns:span[@class='option']", nsmgr);
Console.WriteLine("option={0}", systemOptionNode.InnerText.ToString());
}
}
}
}