.NET 4.5 -- 通过 HttpPost 发送 SOAP 请求

.NET 4.5 -- Send SOAP request via HttpPost

我正在编写一个使用 SOAP Web 服务的 .NET 应用程序。当我发送我的 SOAP 请求时,我从服务器收到一个错误。错误说要检查的一件事是我正在通过 HTTP Post 发送请求,但我不确定如何检查它。我正在根据第 3 方提供的 WSDL 构建我的代码,因此我正在调用他们定义的函数来触发请求。那么我如何告诉它通过 HttpPost?

提交呢?

我用这个简单地修饰了我的函数:

[System.Web.Script.Services.ScriptMethod(UseHttpGet = false)]

但我认为这不是我需要的。据我所知,只有在可以直接从脚本调用函数时才使用它,而我并不是这样写的。此外,即使它很有用,这些函数显然默认为 HttpPost。

我也想知道我是否可以在 web.config 中设置它——也许在绑定部分?

到目前为止我看到的关于通过 POST 发送 SOAP 请求的示例要么适用于 .NET 4.0,要么它们使用 HttpWebRequest class .但是由于我必须通过 WSDL 中定义的函数提交请求,所以我认为 class 对我没有帮助...

非常感谢任何建议!

我要做的第一件事是使用 Fiddler 等工具检查请求的当前发送方式,该工具可让您检查传入和传出的 Web 请求。通常,SOAP WSDL 被编写为根据需要使用 GETPOST,因此您不必更改它。

如果它实际上是作为 GET 请求发送的,那么这是值得修复的问题,但我怀疑它不是。更有可能是请求存在其他问题,您收到的警告只是一般性提示,并不具体说明您的请求有什么问题。