我最近实现了 RestSharp,而不是在 .NET Core 中使用普通的旧 HTTP 客户端。这对于一些 OAuth1 身份验证问题也很有帮助,而且效果很好。
然而,我需要支持的一个需求现在被打破了——调用仍然使用 SOAP 信封和 XML 的旧版本 NAV。
我的 RestSharp 请求是这样构建的(部分编辑):
var request = new RestRequest(transmission.Url.PathAndQuery, Helper.GetRestSharpMethod(transmission.Method), dataType);
request.AddParameter("text/xml", body, "text/xml", ParameterType.RequestBody);
其中 dataType 是 Datatype.Xml 而 body 是我的肥皂信封作为 XML 文本。我试过“应用程序/xml”。我也尝试过使用 request.AddBody 和 request.AddBodyXml - 但它们只会引起更多问题。
端点(我们知道它与旧请求一起工作)返回一个问题,即无法从 SOAP 信封内部读取数据(我们再次知道它在那里,因为它在请求的参数中)。
任何人都可以提出任何解决此问题并仍在使用 rest sharp 的方法吗?或者这不是真的打算支持,我最好在这个特定部分使用普通的 HTTP 客户端?
谢谢。
编辑:
关于旧代码,SOAP 信封文本是相同的。不同之处在于,我没有使用 RestSharp request.AddBody(),而是构建了标准 HttpRequestMessage,然后将 HttpContent 设置为new StringContent(content)
这是使用标准 .NET Core httpclient 发送的
var response = await client.SendAsync(request);