Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
webrequest在.net内核中的实现_.net_Asp.net Core - Fatal编程技术网

webrequest在.net内核中的实现

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中工作时,我面临上述代码的问题

您可以根据.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
    }