gpt4 book ai didi

c# - POST HttpRequestMessage 为空

转载 作者:行者123 更新时间:2023-11-30 18:14:49 36 4
gpt4 key购买 nike

我在 ASP.NET Core 中有一个 Web API,该方法具有以下签名:

[HttpPost]
public HttpResponseMessage Foo(HttpRequestMessage data)

这是我发送给操作的数据:

<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<DTO
xmlns="http://tempuri.org/">
<field1>1</field1>
<field2>2</field2>
</DTO>
</s:Body>
</s:Envelope>

我正在向 Postman 发出请求,其中 Data 是一条 soap xml 消息。 header 的 Content-Type: :"application/xml"(也试过:application/x-www-form-urlencoded)

由于某些奇怪的原因,当我尝试读取这些数据时,我可以看到以下内容:方法:获取内容:无请求网址:无 header :{{}}

在 Start 中,我还包含了 XmlFormatters(假设这是问题的根源):

services.AddMvc(options =>
{
options.RespectBrowserAcceptHeader = true;
options.InputFormatters.Add(new XmlSerializerInputFormatter());
options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
}
);

但这并没有帮助。

我还有另一个 Web Api(用于 .NET Framework),我在其中成功接收到 HttpRequestMessage 参数。

问题的根源是什么?

最佳答案

ASP.NET Core 不处理开箱即用的 SOAP 请求。您需要添加一些中间件来处理 SOAP 消息。我以前使用过这个项目并且效果非常好:

https://github.com/DigDes/SoapCore

关于如何使用她的库有一个详细的演练:

https://stackify.com/soap-net-core/

关于c# - POST HttpRequestMessage 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49666860/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com