How to build a Webservice
Hallo zusammen,
Für meine Website habe ich schon im 2009 einen Webservice gebaut. Bisher habe ich aber noch nie darüber einen Blog Artikel geschrieben. Hier nun eine kleine Anleitung.
Webservice erstellen
Im Visual Web Developer Express erstellt man eine neue Datei und wählt "Web Service" aus den Templates aus.
Das Template hat schon die richtige Struktur. Es müssen lediglich ein die Namen der Klasse, der Namespace und die Funktion angepasst werden.
<%@ WebService Language="VB" Class="WebserviceExample" %>
Imports System
Imports System.Web
Imports System.Web.Services
Imports System.Xml.Serialization
<WebService(Namespace:="WebserviceExample")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
Public Class WebserviceExample
Inherits System.Web.Services.WebService
<WebMethod()> Public Function Addition(ByVal Summand1 As Integer, ByVal Summand2 As Integer) As Integer
Return Summand1 + Summand2
End Function
End Class
Nach dem speichern der Datei als http://www.icewolf.ch/WebserviceExample.asmx rufe ich die Seite mit dem IE auf.
Hängt man den Parameter "?WSDL" an die URL an, so kann man die Service Description in XML sehen. WSDL steht für Web Services Description Language
http://www.icewolf.ch/WebserviceExample.asmx?WSDL
Man sieht, dass die Funktion "Addition" mit zwei Integer Variablen existiert und der Rückgabewert ebenfalls vom Typ Integer ist.
Webservice Benutzen
Nun erstelle ich eine VB Anwendung und erstelle ich eine Service Referenz auf den Webservice.
Nach eingabe der URL zum Webservice klickt man auf "Go". Anschliessend werden die verfügbaren Funktionen des Webservices angezeigt.
Nun benutze ich den Webservice aus meiner VB Applikation
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myresult As Long
Dim ws As New ServiceReference1.WebserviceExampleSoapClient
Try
myresult = ws.Addition(10, 15)
MsgBox("Result: " & myresult)
Catch ex As Exception
MsgBox("Exception: " & ex.Message)
End Try
End Sub
End Class