【问题标题】:.NET 4.5 -- Send SOAP request via HttpPost.NET 4.5 -- 通过 HttpPost 发送 SOAP 请求
【发布时间】: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


【解决方案1】:

我要做的第一件事是使用Fiddler 之类的工具检查请求当前是如何发送的,它可以让您检查传入和传出的网络请求。通常,编写 SOAP WSDL 以根据需要使用 GETPOST,因此您不必更改它。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    相关资源
    最近更新 更多