首页 > 解决方案 > 将 XML 发布到 MVC 控制器 C#

问题描述

我正在尝试将来自 www.domain1.com 的 XML 发布到 www.domain2.com 中的控制器。

这是我的代码:

www.domain2.com

[HttpPost]
        public ActionResult FetchProductsXML()
        {
            Response.ContentType = "text/xml";

            StreamReader reader = new StreamReader(Request.InputStream);
            String xmlData = reader.ReadToEnd();

            var products = _productService.SearchProducts(showHidden: false);
            var xml = _exportManager.ExportProductsToXml(products);

            return this.Content(xml, "text/xml");
        }

然后在 www.domain1.com 我发布如下..

private string getProductLIstXML()
    {
        ASCIIEncoding encoding = new ASCIIEncoding();

        string SampleXml = "<testXml>test</testXml>";

        try
        {
            byte[] data = encoding.GetBytes(SampleXml);

            string url = "http://www.domain2.com/products-xml";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            byte[] bytes;
            bytes = System.Text.Encoding.ASCII.GetBytes(SampleXml);
            request.ContentType = "text/xml; encoding='utf-8'";
            request.ContentLength = bytes.Length;
            request.Method = "POST";
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();
            HttpWebResponse response;
            response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream responseStream = response.GetResponseStream();
                string responseStr = new StreamReader(responseStream).ReadToEnd();
                return responseStr;
            }
            return null;

        }
        catch (WebException webex)
        {
            return webex.ToString();
        }
    }

我在 RouteProvider 类中的自定义路由

   routes.MapLocalizedRoute("FetchProductsXML",
                            "products-xml",
                            new { controller = "Product", action = "FetchProductsXML" },
                            new[] { "Nop.Web.Controllers" });

我得到的错误是

System.Net.WebException: The remote server returned an error: (404) Not Found.
   at System.Net.HttpWebRequest.GetResponse()

我遵循了以下 SOQ 中的示例

如何将 XML 发布到 MVC 控制器中?(而不是键/值)

C# 中的 HTTP 发布 XML 数据

标签: c#asp.net-mvc

解决方案


经过一个漫长的夜晚,我意识到我在错误的课程中使用了该方法:(

现在都修好了。


推荐阅读