Ошибка запроса SOAP - PullRequest
       12

Ошибка запроса SOAP

0 голосов
/ 20 февраля 2019

Я пытаюсь сделать SOAP-запрос в C #.Используя SoapUI, я успешно выполнил требуемый запрос, поэтому я в основном скопировал строку запроса в LoadXml следующего кода C #:

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(@"https://w8cert.iconnectdata.com:443/FleetCreditWS/services/FleetCreditWS0200");
    webRequest.Headers.Add(@"SOAP:Action");
    webRequest.ContentType = "text/xml;charset=\"utf-8\"";
    webRequest.Accept = "text/xml";
    webRequest.Method = "POST";

    XmlDocument soapEnvelopeXml = new XmlDocument();

    soapEnvelopeXml.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8"" ?><soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:main=""http://fleetCredit02.comdata.com/maintenance/"" xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"">
        <soapenv:Header>
            <wsse:Security>
                <wsse:UsernameToken>
                    <wsse:Username>{MyUserName}</wsse:Username>
                    <wsse:Password>{MyPassword}</wsse:Password>
                    </wsse:UsernameToken>
            </wsse:Security>
            </soapenv:Header>
            <soapenv:Body>
                <main:ProprietaryIntradayRequest>
                    <startDate>2018-02-06</startDate>
                    <maskCardFlag>false</maskCardFlag>
                </main:ProprietaryIntradayRequest>
            </soapenv:Body>
        </soapenv:Envelope>");


    using (Stream stream = webRequest.GetRequestStream())
    {
        soapEnvelopeXml.Save(stream);
    }

    WebResponse response; 

    try
    {

        using (response = webRequest.GetResponse())
        {
            using (StreamReader rd = new StreamReader(response.GetResponseStream()))
            {
                string soapResult = rd.ReadToEnd();
                Console.WriteLine(soapResult);
            }
        }

    }
    catch (WebException e)
    {
        StreamReader str = new StreamReader(e.Response.GetResponseStream());

        System.Diagnostics.Debugger.Break();

    }

Этот код вызывает постоянную (500) внутреннюю ошибку сервера встрока "using (response = webRequest.GetResponse ())".Я даже пытался перехватить ответ веб-исключения, но получил ту же ошибку 500.

Может кто-нибудь увидеть то, что мне не хватает, что приведет к тому, что тот же запрос будет работать в SoapUI, но не получится в C #?

...