public static string GetWebServiceEx(string url)
        {
            string strURL = url;            //创建一个HTTP请求      
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
            request.Method = "get";
            HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
            Stream s = response.GetResponseStream();
            //转化为XML,自己进行处理      
            XmlTextReader Reader = new XmlTextReader(s);
            Reader.MoveToContent();
            string strValue = Reader.ReadInnerXml();
            //return strValue;
            strValue = Public.GetXMLString(strValue);
            return strValue;
        }
    public class GetIP
    {
        [DllImport("Iphlpapi.dll")]
        private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
        [DllImport("Ws2_32.dll")]
        private static extern Int32 inet_addr(string ip);        //获取本机的IP
        public string getLocalIP()
        {
            string strHostName = Dns.GetHostName();  //得到本机的主机名
            IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP
            string strAddr = ipEntry.AddressList[0].ToString();
            return (strAddr);
        }
        //获取本机的MAC
        public static string getLocalMac()
        {
            string mac = null;
            ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection queryCollection = query.Get();
            foreach (ManagementObject mo in queryCollection)
            {
                if (mo["IPEnabled"].ToString() == "True")
                    mac = mo["MacAddress"].ToString();
            }
            return (mac);
        }
    }
string uri = " http://localhost:15995/Login.asmx/CheckSecurity?mac=" + Common.GetIP.getLocalMac().Trim();
            //MessageBox.Show(Common.Net.GetWebServiceEx(" http://localhost:15995/Login.asmx/CheckSecurity?mac=00:1B:9E:BB:04:59")+"\r\n"+uri);
            MessageBox.Show(Common.Net.GetWebServiceEx(uri) + "\r\n" + uri);
上边是方法以及调用
2个问题 第一个string uri = " http://localhost:15995/Login.asmx/CheckSecurity?mac=" + Common.GetIP.getLocalMac().Trim();
得到的结果是
http://localhost:15995/Login.asmx/CheckSecurity?mac=00:1B:9E:BB:04:59
但是用
Common.Net.GetWebServiceEx(uri)执行得不到结果 但是
Common.Net.GetWebServiceEx("http://localhost:15995/Login.asmx/CheckSecurity?mac=00:1B:9E:BB:04:59")可以;
还有
GetWebServiceEx()方法能取到webservice的返回 如何解析 这个XML呢 对XML解析
不熟悉望指点返回 XML  <?xml version="1.0" encoding="utf-8" ?> 
  <DataTable xmlns=" http://pxtsoft.com/">
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:app1="CheckSecurity" msdata:schemafragmentcount="2">
  <xs:import namespace="CheckSecurity" /> 
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="CheckSecurity_x003A_ds" msdata:UseCurrentLocale="true">
  <xs:complexType>
  <xs:choice minOccurs="0" maxOccurs="unbounded">
  <xs:element ref="app1:ds" /> 
  </xs:choice>
  </xs:complexType>
  </xs:element>
  </xs:schema>
  <xs:schema targetNamespace="CheckSecurity" xmlns:mstns="CheckSecurity" xmlns="CheckSecurity" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:app1="CheckSecurity">
  <xs:element name="ds">
  <xs:complexType>
  <xs:sequence>
  <xs:element name="id" type="xs:int" minOccurs="0" /> 
  <xs:element name="用户名" type="xs:string" minOccurs="0" /> 
  <xs:element name="密码" type="xs:string" minOccurs="0" /> 
  <xs:element name="姓名" type="xs:string" minOccurs="0" /> 
  <xs:element name="所属部门" type="xs:string" minOccurs="0" /> 
  <xs:element name="部门职务" type="xs:string" minOccurs="0" /> 
  <xs:element name="节点权限" type="xs:string" minOccurs="0" /> 
  <xs:element name="联合区" type="xs:string" minOccurs="0" /> 
  <xs:element name="网卡绑定" type="xs:string" minOccurs="0" /> 
  <xs:element name="帐号状态" type="xs:string" minOccurs="0" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
  <NewDataSet xmlns="">
  <ds diffgr:id="ds1" msdata:rowOrder="0" xmlns="CheckSecurity">
  <id>1</id> 
  <用户名>admin</用户名> 
  <密码>admin</密码> 
  <姓名>admin</姓名> 
  <所属部门>销售部</所属部门> 
  <部门职务>管理员</部门职务> 
  <节点权限>销售</节点权限> 
  <联合区>南联合教学区</联合区> 
  <网卡绑定>00:1B:9E:BB:04:59</网卡绑定> 
  <帐号状态>正常</帐号状态> 
  </ds>
  </NewDataSet>
  </diffgr:diffgram>
  </DataTable>
如果用XmlDocument Doc=New XmlDocument();
Doc.LoadXml(GetWebServiceEx);
提示有2个根节点 异常

解决方案 »

  1.   

    第一个问题解决了 是mac号 写错了 1位
      

  2.   

    我估计跟编码有问题,你能不能把xml编码改成<?xml version="1.0" encoding="gb2312" ?>
    ,反正我现在是中文系统,把你贴出来的直接保存成xml打不开,把编码方式改变就可以了。你可以试着把你里面的中文汉字改成英文,或者把你程序的环境改成英文