c#WEB APIへのアクセスおよびXMLドキュメントの読み取り
3724 ワード
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; }
}
}
true
true
false
true
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 userXmlList = new List();
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(json);
return Per;
}
}
}
}