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")); }
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); }
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)); }