Опубликовать XML в MVC Controller C # - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь опубликовать XML с www.domain1.com контроллера на 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 Controller?(вместо ключа / значения)

HTTP-публикация данных XML в C #

1 Ответ

0 голосов
/ 26 июня 2018

После долгой ночи я понял, что у меня есть метод в неправильном классе: (

Все исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...