示例#1
0
        public void Can_set_XmlElementName_of_the_request_attribute()
        {
            var z      = new TestType();
            var result = SoapConvert.Serialize(z, "action", "ns2", SoapType.Request);

            Assert.Equal(222, result?.IndexOf("test123"));
        }
示例#2
0
        private StringContent GetSoapContent(TRequest request)
        {
            var xmlString = SoapConvert.Serialize(request, _config.SoapActionElementName, _config.Namespace, SoapType.Request);

            _logger.Log(LogLevel.Debug, $"Soap request:{xmlString}");

            var stringContent = new StringContent(xmlString)
            {
                Headers = { ContentType = { MediaType = "application/soap+xml" } }
            };

            stringContent.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("action", $@"""{_config.SoapAction}"""));

            return(stringContent);
        }
示例#3
0
        public async Task <TResponse> PostAsync(TRequest request)
        {
            var xmlContent = GetSoapContent(request);
            var result     = await _client.PostAsync(Url ?? _config.GetUrl(_env), xmlContent);

            var stream = await result.Content.ReadAsStreamAsync();

            _logger.Log(LogLevel.Debug, $"Soap response:{stream.ToText()}");

            if (!result.IsSuccessStatusCode)
            {
                throw new SoapException(new StreamReader(stream).ReadToEnd());
            }
            return(SoapConvert.Deserialize <TResponse>(stream, _config.SoapActionElementName));
        }