webrequest在.net内核中的实现
在.net core中工作时,我面临上述代码的问题webrequest在.net内核中的实现,.net,asp.net-core,.net,Asp.net Core,在.net core中工作时,我面临上述代码的问题 您可以根据.net core转换代码吗?您可以将代码分为两部分:(1)HTTP响应检索和(2)解析 要获得XML响应,可以使用这样的方法 WebRequest request = WebRequest.Create(Url); request.Method = "POST"; string postData = "XML=" + System.Net.WebUtility.UrlEnc
您可以根据.net core转换代码吗?您可以将代码分为两部分:(1)HTTP响应检索和(2)解析 要获得XML响应,可以使用这样的方法
WebRequest request = WebRequest.Create(Url);
request.Method = "POST";
string postData = "XML=" + System.Net.WebUtility.UrlEncode(req);
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(responseFromServer);
XmlNodeList HotelDetailsResponse = xmldoc.SelectNodes("/Details");
XmlNodeList Hotels = xmldoc.GetElementsByTagName("School");
foreach (XmlNode node in Hotels)
{
}
我曾经模拟API XML响应。这不是一个免费的编码服务,它是一个问答网站。如果你不努力自己解决问题,告诉我们你的努力以及你遇到问题的具体位置,你就不应该指望别人帮助你
private async Task<string> GetXmlResponse(Uri uri, string postData)
{
using (var httpClient = new HttpClient())
{
var response = await httpClient.PostAsync(uri, new StringContent(postData));
if (!response.IsSuccessStatusCode)
{
throw new Exception($"Error: {response.StatusCode}"); // TODO use specific exception
}
return await response.Content.ReadAsStringAsync();
}
}
// Mocked API returns "<xml><hotels><School>s1</School><School>s2</School></hotels></xml>"
var uri = new Uri("http://demo7162366.mockable.io/"); // TODO change to your URL
var postData = "XML=" + System.Net.WebUtility.UrlEncode("<xml></xml>"); // TODO change to your content
var xml = await GetXmlResponse(uri, postData);
var doc = XDocument.Parse(xml);
var hotelNodes = (from d in doc.Descendants()
where d.Name.LocalName == "School"
select d).ToList();
foreach (var hotelNode in hotelNodes)
{
// TODO your logic
}