2017-08-02 194 views
1

您好我正在開發使用WCF的XML Soap服務。我的要求是更新一些數據庫表。我有一個方法來更新數據庫中的值。以下是我的服務。如何使用POSTMAN測試wcf 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錯誤的請求error.May我知道我是以下正確的方法來測試服務?如果我做錯了,有人能糾正我嗎?任何幫助將不勝感激。謝謝。

+0

這是不正確的 - 你不能手動構建soap請求。用一些工具爲你做 –

回答

1

您必須將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> 

爲了得到你應該使用服務端點定義和使用some tooling產生一個有效的請求SOAP消息的保持。

此外,您不應該將數據作爲地址的一部分發送到端點地址?wsdl。它應該只是端點地址。

+0

謝謝湯姆。應該用xmlns:s =「http:// RayaSoapService /」替換xmlns:s =「http:// myNamespace /」吧? –

+0

@NiranjanGodbole這取決於你如何定義你的端點。從頭開始手動破解肥皂申請是非常困難的。讓一個工具爲你做這件事很容易。 –

+0

好的,謝謝。當我運行應用程序時,我缺少方法名稱。我可以知道我錯過了什麼嗎?我已經附上上面的截圖。 –