c#访问WEB API以及读取XML文档

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Entity
{
    public class PowerXML
    {
        public string userId { get; set; }
        public string userPersonInfoPower { get; set; }
        public string userPersonQurInfoPower { get; set; }
        public string userIpPlaceInfoPower { get; set; }
        public string userEleInfoPower { get; set; }


    }
}
<?xml version="1.0" encoding="utf-8"?>
<userPower>
	<user Id="abc">
    <PersonInfoPower>true</PersonInfoPower>
    <PersonQurInfoPower>true</PersonQurInfoPower>
    <IpPlaceInfoPower>false</IpPlaceInfoPower>
    <EleInfoPower>true</EleInfoPower>
	</user>
</userPower>
using Entity;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Xml;
using test.Models;

namespace test.Controllers
{
    public class IPPlaceController : ApiController
    {
        [HttpGet]
        public IPPlcJson Get(string ip)
        {
            if (ip == "" || ip == null)
            {
                ip = IPGe.GetIP();//获取IP的方法
            }
//XML文档的读取
            List<PowerXML> userXmlList = new List<PowerXML>();
            XmlDocument uPower = new XmlDocument();

            string filename = System.AppDomain.CurrentDomain.BaseDirectory;
            uPower.Load(@filename + "/XML/userPower.xml");
            //获取根节点
            XmlNode xn = uPower.SelectSingleNode("userPower");
            XmlNodeList xnl = xn.ChildNodes;
            foreach (XmlNode item in xnl)
            {
                PowerXML userxml = new PowerXML();
                // 将节点转换为元素,便于得到节点的属性值
                XmlElement xe = (XmlElement)item;
                // 得到id属性的属性值
                userxml.userId = xe.GetAttribute("Id").ToString();
                //获得user节点的所有子节点
                XmlNodeList xnc = xe.ChildNodes;
                userxml.userPersonInfoPower = xnc.Item(0).InnerText;
                userxml.userPersonQurInfoPower = xnc.Item(1).InnerText;
                userxml.userIpPlaceInfoPower = xnc.Item(2).InnerText;
                userxml.userEleInfoPower = xnc.Item(3).InnerText;
                userXmlList.Add(userxml);
            }
            if (userXmlList[0].userId == "abc" && userXmlList[0].userIpPlaceInfoPower == "true")
            {
//web API的访问
                string typeBcURL = "http://192.168.168.31:8001/service/Internet/IPAddress/BelongTo?IP=" + ip;
                System.Net.WebClient client = new System.Net.WebClient();
                System.Net.WebRequest httpRquest = System.Net.HttpWebRequest.Create(typeBcURL);
                httpRquest.Method = "get";
                httpRquest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";

                System.Net.WebResponse response = httpRquest.GetResponse();
                System.IO.Stream responseStream = response.GetResponseStream();

                System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, System.Text.Encoding.UTF8);
                string json = reader.ReadToEnd();
                reader.Close();
                reader.Dispose();
                responseStream.Close();
                responseStream.Dispose();

                SaveLog.SaveL("abc", "IPPlace", json);
                IPPlcJson Per = JsonConvert.DeserializeObject<IPPlcJson>(json);
                return Per;

            }




        }
    }
}
发布了16 篇原创文章 · 获赞 6 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_36124520/article/details/88367960