【发布时间】:2016-01-07 19:52:45
【问题描述】:
我正在编写一个使用 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 类。但是由于我必须通过 WSDL 中定义的函数提交请求,所以我认为该类对我没有帮助...
非常感谢任何建议!
【问题讨论】:
-
我想说你应该做的第一件事是使用像 Fiddler 这样的工具检查它当前的发送方式。如果它实际上是通过 GET 发送的,那么值得尝试更改它,但我的猜测是它已经在使用 POST
-
谢谢!我会尝试并从那里开始。
-
您最终发现它是如何工作的吗?如果您现在对自己的问题有一个很好的答案,因为您知道更多,您可以自己发布答案,以防其他人在路上遇到同样的问题
-
似乎某些 XML 可能存在一些我最初没有发现的问题。你是对的——在玩弄了 Fiddler 之后,我终于验证了提交已经通过 POST 发送。如果您想重新发布您的评论作为答案,我很乐意为您服务!再次感谢您的帮助。
标签: c# soap wsdl http-post .net-4.5