So erhalten Sie die WSDL-Datei von der URL eines Webservices

86

Ich möchte die WSDL-Datei für einen Webservice erhalten und das einzige, was ich habe, ist die URL (wie webservice.example / foo).

Wenn ich die URL direkt verwende, wird nur eine Fehlerantwort geliefert.

Alfergon
quelle

Antworten:

124

Durch Postfixieren der URL mit ?WSDL

Wenn die URL zum Beispiel lautet:

http://webservice.example:1234/foo

Sie nutzen:

http://webservice.example:1234/foo?WSDL

Und die wsdl wird geliefert.

Alfergon
quelle
2
Manchmal auch alle Länderspiele (WSDL)
Dan
Und wenn Sie die WSDL nicht erhalten, erhalten Sie möglicherweise eine XML mit einem Bindungsschlüssel oder einer Art Validierungscode, mit dem Sie die tatsächliche URL der WSDL erstellen können.
Uhrmacher
Irgendeine Idee, wie man die importierten xsd-Dateien bekommt?
Wikingersteve
Das funktioniert nicht. Dies ist meine Webservice-URL: prealert-test.customer-pages.com
1
Das WSDL-Ding ist eine Konvention, auf die normalerweise Frameworks folgen. Wenn es bei Ihnen nicht funktioniert, sollten Sie etwas Spezielles für das von Ihnen verwendete Framework finden.
Alfergon
25

um die WSDL(Web Service Description Language ) von einer Webdienst-URL abzurufen.

Ist über SOAP Web Services möglich:

http://www.w3schools.com/xml/tempconvert.asmx

Um die WSDL zu erhalten, müssen wir nur hinzufügen ?WSDL, zum Beispiel:

http://www.w3schools.com/xml/tempconvert.asmx? WSDL

Jorgesys
quelle
1
Wie würden Sie einige Daten mithilfe der URL abrufen?
Jesse
1
Wenn Sie Daten von SOAP abrufen möchten, sollten Sie dieses Tool soapui.org verwenden. Es ist kostenlos und funktioniert einwandfrei .
Major
12

Die WSDL kann nur abgerufen werden, wenn der Webservice für die Bereitstellung konfiguriert ist. Dazu müssen Sie ein serviceBehavior angeben und httpGetEnabled aktivieren:

<serviceBehaviors>
    <behavior name="BindingBehavior">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
</serviceBehaviors>

Wenn auf den Webservice nur über https zugegriffen werden kann, müssen Sie http s GetEnabled anstelle von httpGetEnabled aktivieren.

Manuel Koch
quelle
4

Um die WSDL mithilfe der Developer-Eingabeaufforderung für Visual Studio von einer URL herunterzuladen , führen Sie sie im Administratormodus aus und geben Sie den folgenden Befehl ein:

 svcutil /t:metadata http://[your-service-url-here]

Sie können jetzt die heruntergeladene WSDL in Ihrem Projekt nach Belieben verwenden.

Talha Imam
quelle