2017-08-02 2 views
1

Hallo Ich entwickle XML-Soap-Dienste mit WCF. Meine Anforderung besteht darin, einige Datenbanktabellen zu aktualisieren. Ich habe eine Methode, um Werte in der Datenbank zu aktualisieren. Unten ist mein Service.So testen Sie den WCF-Seifenservice mit POSTMAN?

[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

Unten ist mein 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> 

, wenn ich versuche ich, wie oben i 400 schlecht Anfrage bekommt gezeigt error.May ich weiß, bin ich richtigen Ansatz nach dem Dienst zu testen? Kann mich jemand korrigieren, wenn ich falsch liege? Jede Hilfe würde sehr geschätzt werden. Vielen Dank.

+0

Das ist nicht korrekt - Sie können die Soap-Anfrage nicht manuell erstellen. Verwenden Sie einige Werkzeuge, um es für Sie zu tun –

Antwort

1

Sie müssen eine Soap-Nachricht an den Service-Endpunkt senden.

Eg

<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> 

zu halten, eine SOAP-Nachricht erhalten Sie die Service-Endpunkt-Definition verwenden sollten, und verwenden some tooling eine gültige Anforderung zu generieren.

Außerdem sollten Sie keine Daten an die Endpunktadresse mit ?wsdl als Teil der Adresse senden. Es sollte nur die Endpunktadresse sein.

+0

Danke tom. xmlns: s = "http: // myNamespace /" sollte durch xmlns ersetzt werden: s = "http: // RayaSoapService /" richtig? –

+0

@NiranjanGodbole hängt davon ab, wie Sie Ihren Endpunkt definiert haben. Es ist notorisch schwierig, manuell eine Soap-Anfrage von Grund auf zu hacken. Es ist sehr einfach, ein Tool für Sie arbeiten zu lassen. –

+0

Okay danke. Wenn ich die Anwendung ausführe, fehlt mir der Methodenname. Darf ich wissen, was ich vermisse? Ich habe den Screenshot oben angehängt. –