gpt4 book ai didi

.net - 使用 Postman 或 SoapUI 测试 WCF 服务会出现 400 Bad Request

转载 作者:行者123 更新时间:2023-12-05 05:25:34 27 4
gpt4 key购买 nike

当我在 Visual Studio 2013 中创建一个名为“WcfService1”的全新 WCF 服务应用程序并立即运行它时,WCF 测试客户端完成的请求工作正常。不足为奇。

当我尝试在 REST/SOAP 客户端(如 Postman 或 SoapUI)中测试同一个初始应用程序时,我收到 400 Bad Request 错误。在像 Postman 这样的 REST 客户端中应该更改什么才能使对初始 VS 应用程序的请求正常工作?

除其他外,我测试了这些可能性:

<强>1。初始 WCF 服务应用程序交付的源代码

    [ServiceContract]    public interface IService1    {        [OperationContract]        string GetData(int value);    }

为了便于阅读,我不会粘贴整个项目的源代码。如果愿意,您可以通过在 VS 中创建一个新的 WCF 服务应用程序项目来生成它。

下面你会看到我是如何配置 Postman 的,它给出了 400 Bad Request:

enter image description here

<强>2。从 WCF 测试客户端复制的 Postman 中的原始 XML 请求

enter image description here

这个变体没有解决错误。源码不变,同上。

<强>3。在 GetData 操作上使用 WebInvokeAttribute 扩展的源代码

    [OperationContract]    [WebInvoke(Method = "POST", UriTemplate = "/GetData")]    string GetData(int value);

这个添加没有解决错误。 Postman中的所有设置同上;当然在 URL 中使用/GetData。

<强>4。扩展GetData操作的OperationContractAttribute

    [OperationContract(Action = "http://www.jorritsteetskamp.nl/wcfservice1")]    string GetData(int value);

我尝试添加了 SOAPAction header 的 Postman,但它再次导致错误 400:

enter image description here

在 SO 上存在几个关于 WCF 服务和 400 错误请求错误的问题,但它们似乎都是特定于应用程序的,并且没有针对这种情况的解决方案。由于此问题出现在由 Visual Studio 生成并在 WCF 测试客户端中运行的初始应用程序中,因此我找到了发布此问题的理由。

我的问题是:像 Postman 这样的 REST 客户端应该改变什么才能使对初始 VS 应用程序的请求正常工作?

任何帮助将不胜感激。

最佳答案

  • 案例 1:您发布的是表单数据,而不是您应该发布的 SOAP/XML。
  • 情况 2:您缺少 SOAP Action header 。
  • 案例 3:请求似乎正常,但您可能没有配置 WebHttp 端点。
  • 案例 4:服务 URL 中不需要 GetData。

为了使其成为 REST 服务,您需要

  1. 使用 WebGet/WebInvoke 注释服务方法
  2. 配置 WebHttp 端点。
  3. 使用案例 3 中的请求。

关于.net - 使用 Postman 或 SoapUI 测试 WCF 服务会出现 400 Bad Request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332964/

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