web-services - 如何使用 POSTMAN 测试 wcf soap 服务?

标签 web-services wcf

您好,我正在使用 WCF 开发 XML Soap 服务。我的要求是更新一些数据库表。我有一种方法可以更新数据库中的值。以下是我的服务。

  [ServiceContract]
public interface IOpportunity
{
    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Xml, UriTemplate = "postmethod/updateOpportunity")]
    bool updateOpportunity(opportunityActivity obj);
}
[DataContract]
public class opportunityActivity
{
    [DataMember]
    public string opportunityID { get; set; }
    [DataMember]
    public string opportunityStatus { get; set; }
    [DataMember]
    public string opportunityserviceType { get; set; }
}

Missing method

下面是我的xml。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://localhost:39512/Opportunity.svc">
   <soapenv:Header/>
   <soapenv:Body>
      <s:request>
       <opportunityID>1-1D5SJX</opportunityID>
       <opportunityStatus>Completed</opportunityStatus>
       <opportunityserviceType>LEASE_REQUEST</opportunityserviceType>
      </s:request>
   </soapenv:Body>
</soapenv:Envelope>

当我尝试如上所示时出现 400 错误请求错误。我可以知道我是否按照正确的方法来测试服务?如果我做错了,有人可以纠正我吗?任何帮助将不胜感激。谢谢你。

最佳答案

您必须将 soap 消息传递到服务端点。

例如

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://myNamespace/">
   <soapenv:Header/>
   <soapenv:Body>
      <s:request>
          ....
      </s:request>
   </soapenv:Body>
</soapenv:Envelope>

要获取 soap 消息,您应该使用服务端点定义并使用 some tooling生成有效请求。

此外,您不应该将数据发送到地址中包含 ?wsdl 的端点地址。它应该只是端点地址。

关于web-services - 如何使用 POSTMAN 测试 wcf soap 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456588/

相关文章:

c# - 为什么 jQuery 不能管理这个 JSON?

.net - 列出<客户> 全部或全部

wcf - 如何在 Visual Studio 中设置相对服务引用?

wcf - 在 WCF (MSMQ) 服务中禁用 DTC

Asp.Net : Best way to broadcast data from WCF service to Asp. 网络客户端

wcf - WCF IncludeExceptionDetailInFaults以编程方式?

web-services - wsimport 如何从 WSDL 为 http :binding GET/POST 创建 Web 服务客户端

web-services - 如何测试存在时间滞后的 Web 服务?

java - Web 服务中每个用户的全局变量

c# - WCF 服务 - 了解在构造函数中调用了哪个方法