Веб-сервис с заголовками WSSE - PullRequest
0 голосов
/ 26 мая 2019

Я ищу решение веб-службы ASP.Net (C #), которое может использовать вложенный запрос, это должно быть сделано в коде позади, из-за записей заголовка:

<soapenv:Envelope 
          xmlns:max="http://training.maxmoney.co.za/webservices/maxmoney.xsd" 
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
            <soapenv:Header>
                <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                    <wsse:UsernameToken wsu:Id="UsernameToken-E033FC91FFC6A82CA915397704062061">
                        <wsse:Username>albatross_soap</wsse:Username>
                        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">@1B@tr0$$</wsse:Password>
                        <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">gNpe7bc1ArfIL0A6pAvYUQ==</wsse:Nonce>
                        <wsu:Created>2018-10-17T10:00:06.205Z</wsu:Created>
                    </wsse:UsernameToken>
                </wsse:Security>
            </soapenv:Header>
            <soapenv:Body>
                <max:connectionTest>
                    <iGIDCode>910821</iGIDCode>
                    <iMleAPIKey>4QWPiKbK4k7kvSuRAu1vrr2Mtxs</iMleAPIKey>
                    <iCustomID/>
                    <iCustomCode/>
                </max:connectionTest>
            </soapenv:Body>
</soapenv:Envelope>

Возврат долженбыть:

ReplyCode (4 символа) (0000 - успех) ReplyStr (дата и время)

Это код

<code><pre>
string xml = doc.ToString();
string url = "http://training.maxmoney.co.za/MaxAdmin/web_services/maxmoney/";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(xml);
req.Method = "POST";
req.ContentType = "text/xml;charset=utf-8";
req.ContentLength = requestBytes.Length;
Stream requestStream = req.GetRequestStream();
requestStream.Write(requestBytes, 0, requestBytes.Length);
requestStream.Close();

HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
string backstr = sr.ReadToEnd();

HttpContext.Current.Response.Write(backstr);
sr.Close();
res.Close();

ИЯ правильно понял, за исключением WSSE, который должен быть создан в XML.

Ответ:

Документ не существует, и кажется, что он только потому, что заголовки WSSE

...