Отправка XML в веб-сервис работает только в коде / приложении - PullRequest
0 голосов
/ 22 марта 2019

Я посмотрел много вопросов по SO. Все спрашивают, как отправить XML в веб-службу .Мои POST и GET работают, когда я тестирую IN моего приложения.но я не могу заставить его работать, когда отправляю запрос из сторонних приложений, почтальона, гугла и т. д. Авторизация не проблема.Я не знаю, что это такое.

Это дополнительная страница, которую я создал для тестирования своего приложения: (Очевидно, в этом коде нет ошибки, потому что, как только я открываю эту страницу, работает web-service.aspx исоздает файл csv)

protected void Page_Load(object sender, EventArgs e)
{
    string requestXML = ReadXmlFile(); // this reads a test xml file

    Uri rateRequestURI = new Uri("http://www.myurl.com/web-service.aspx");
    string postData = "rateRequest=" + HttpUtility.UrlEncode(requestXML.ToString());
    byte[] postBuffer = Encoding.UTF8.GetBytes(postData);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(rateRequestURI);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = postBuffer.Length;
    request.Method = "POST";
    request.Timeout = 20000;
    request.KeepAlive = true;
    try
    {
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(postBuffer, 0, postBuffer.Length);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        requestStream = response.GetResponseStream();
        // Open the stream using a StreamReader for easy access. 
        StreamReader reader = new StreamReader(requestStream);
        // Read the content.                
        string responseFromServer = reader.ReadToEnd();
        // parse response
        XmlDocument xmlRequest = new XmlDocument();
        xmlRequest.LoadXml(HttpUtility.UrlDecode(responseFromServer).Replace("&", "&am p;"));
        XmlNodeList responseStatusCodes = xmlRequest.GetElementsByTagName("StatusCode");
        lblMessage.Text = "<b>Status: </b>" + responseStatusCodes.Item(0).SelectSingleNode("@Code").InnerText;
        lblMessage.Text += "<p></p>";
        lblMessage.Text += "<b>Message: </b>" + responseStatusCodes.Item(0).SelectSingleNode("Message").InnerText;
    }
    catch { lblMessage.Text = "Request timed-out"; }
}

Но при отправке с почтальоном, например, как показано ниже;Не работаетНет реакцииЯ перепробовал много разных заголовков.Нет работы.Я не могу понять причину.enter image description here

...