Consumir Web Service con Vb.Net

En este tutorial vamos a mostrar la forma en que sera utilizado el servicio web que hemos creado en java (antes de este post), la idea es de utilizar todas las funciones que existen para gestionar la informacion de la base de datos. La aplicacion a elaborar tendra la siguiente apariencia:

Para comenzar, creemos un nuevo Proyecto de Vb.net, y debemos agregar los siguientes controles:

* 4 textbox

* 4 botones

* 1 combobox

* 1 progressbar

* Varios Label para indicar el nombre de los campos y 2 picturebox para personalizar nuestro formulario con imagenes a su gusto.

El diseño en vb sera similar al que se ve a continuacion:

Luego procedemos a agregar la referencia al servicio web, para ello escogemos la opcion proyecto de la barra de menu, y en la lista desplegable escogemos la opcion Agregar referencia web, si no aparece dicha opcion, seleccionamos la que dice agregar referencia de servicio, como podemos ver:

Luego, aparecera una nueva ventana, alli marcamos la opcion avanzadas como podemos oservar en la imagen que sigue:

Posteriormente, se abrira otra nueva ventana, alli hacemos clic sobre el boton Agregar referencia web:

Bien, en la ventana que aparecerá copiamos la WSDL del Servicio Web que corresponde la la url que lo identifica (puedes revisarla en el post anterior), la colocas donde dice direccion URL y presionasl el Boton Ir

Automaticamente se comienza a explorar el webservice y a listar todos los metodos o funciones que posee, tal y como se observa a continuacion:

Luego le colocamos el nombre de referencia web a nuestro servicio, el cual llamaremos: referenciaws y presionamos el boton agregar referencia.

Listo, una vez agregada la referencia se puede observar en el explorador de soluciones la estructura de nuestro web service, podemos pasar ahora a codificar en cada elemento de nuestro formulario.

Primero, importamos la referencia al servicio web:

Imports Consumiendo_WebService.referenciaws

Luego, en el evento load del formulario desactivamos los errores por subproceso para evitar que en el transcurso de la aplicacion se generen inconsistencias durante el intercambio de datos con el servicio web, el codigo es el siguiente:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

CheckForIllegalCrossThreadCalls = False

End Sub

Luego creamos el procedimiento para insertar al usuario y el cual interactuara con el que se ha creado en el webservice de java.

Sub GuardarUsuario()

'Crea la referencia al web service de java

Dim jws As New referenciaws.proceso_wcService

Dim ced As String = Me.Text_cedula.Text

Dim nombre As String = Me.Text_nombre.Text

Dim apellido As String = Me.Text_apellido.Text

Dim direccion As String = Me.Text_direccion.Text

Dim se As String = Me.Combo_sexo.SelectedItem

'Llama al metodo insertarUsuario del web service que esta en java

'Si devuelve verdadero es porque se inserto ese dato

Dim funciono As Boolean = jws.insertarUsuario(ced, nombre, apellido, direccion, se)

' MsgBox(funciono)

If funciono Then

MsgBox("El usuario ha sido registrado Correctamente!", MsgBoxStyle.Information, "Notificacion")

Else

MsgBox("El usuario No ha sido registrado, Verifique!", MsgBoxStyle.Exclamation, "Notificacion")

End If

End Sub

ahora, llamamos a dicha funcion dentro del boton guardar, tal y como podemos ver:

Private Sub Button_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_guardar.Click

Try

GuardarUsuario()

Catch ex As Exception

MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia")

End Try

End Sub

Bien, ahora vamos a crear el procedimiento buscar_usuario, mediante el cual se realizara la busqueda de informacion en la base de datos:

Sub buscar_usuario()

'Crea la referencia al web service de java

Dim jws As New referenciaws.proceso_wcService

Dim ced As String = CInt(Me.Text_cedula.Text.Trim)

'Llama al metodo buscarUsuarioCedula del web service que esta en java

'Si devuelve verdadero es porque se encontro ese dato

Dim funciono As Boolean = jws.buscarUsuarioCedula(ced)

If funciono = True Then

'Establece los valores a los controles del formulario

Me.Text_nombre.Text = CStr(jws.MostrarNombre)

Me.Text_apellido.Text = CStr(jws.MostrarApellido)

Me.Text_direccion.Text = CStr(jws.MostrarDireccion)

Me.Combo_sexo.Text = CStr(jws.MostrarSexo)

Else

MsgBox("No se ha encontrado Ningun Usuario Con la Cedula que usted ha ingresado, Verifique!", MsgBoxStyle.Exclamation, "Notificacion")

limpiar_cajas()

End If

End Sub

Ahora Procedemos a llamar al procedimiento de busqueda en el boton buscar de la siguiente manera:

Private Sub Button_buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_buscar.Click

Try

With ProgressBar1

.Minimum = 1

.Maximum = 100000

.Value = 1

.Step = 1

For i As Integer = .Minimum To .Maximum

' Perform one step of the action being tracked.

.PerformStep()

Next i

End With

buscar_usuario()

Catch ex As Exception

MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia")

End Try

End Sub

Creamos a continuacion el procedimiento para limpiar los campos de texto en caso de que no se encuentre ninugun usuario despues de hacer una busqueda.

Sub limpiar_cajas()

Me.Text_cedula.Clear()

Me.Text_nombre.Clear()

Me.Text_apellido.Clear()

Me.Text_direccion.Clear()

Me.Combo_sexo.Text = ""

End Sub

ahora, elaboremos el procedimiento para modificar usuario de la manera como veremos a continuacion:

Sub ModificarUsuario()

'Crea la referencia al web service de java

Dim jws As New referenciaws.proceso_wcService

Dim ced As String = Me.Text_cedula.Text.Trim

Dim nombre As String = Me.Text_nombre.Text.Trim

Dim apellido As String = Me.Text_apellido.Text.Trim

Dim direccion As String = Me.Text_direccion.Text

Dim se As String = Me.Combo_sexo.SelectedItem

'Llama al metodo actualizarUsuario del web service que esta en java

'Si devuelve verdadero es porque se actulizo ese dato

Dim funciono As Boolean = jws.actualizarUsuario(ced, nombre, apellido, direccion, se)

If funciono = True Then

MsgBox("Los Datos del Usuario Se han Actualizado Correctamente!", MsgBoxStyle.Information, "Notificacion")

Else

MsgBox("Los Datos del Usuario No Se han Podido Actualizar, Verifique!", MsgBoxStyle.Exclamation, "Notificacion")

End If

End Sub

Luego llamamos a dicho procedimiento de modificar usuario dentro del boton modificar:

Private Sub Button_modificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_modificar.Click

Try

ModificarUsuario()

Catch ex As Exception

MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia")

End Try

End Sub

Por ultimo solo hace falta crear el procedimiento para eliminar registros de la base de datos, para ello elaboramos el siguiente procedimiento:

Sub eliminarUsuario()

'Crea la referencia al web service de java

Dim jws As New referenciaws.proceso_wcService

Dim ced As String = Me.Text_cedula.Text.Trim

'Llama al metodo eliminarUsuario del web service que esta en java

'Si devuelve verdadero es porque se elimino ese dato

Dim funciono As Boolean = jws.eliminarUsuario(ced)

If funciono Then

MsgBox("El Usuario ha sido eliminado Satisfactoriamente!", MsgBoxStyle.Information, "Notificacion")

Else

MsgBox("No se ha Podido eliminar al Usuario, Verifique!", MsgBoxStyle.Exclamation, "Notificacion")

End If

End Sub

y ahora, procedemos a llamar dicho procedimiento dentro del boton eliminar:

Private Sub Button_eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_eliminar.Click

Try

eliminarUsuario()

Catch ex As Exception

MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia")

End Try

End Sub

Listo Amigos ya hemos terminado la aplicacion, ahora solo queda probarla, les recuerdo que para que el programa se comunique con el webservice, este debe de estar corriendo en el servidor donde se encuentra alojado, una prueba al realizar una busqueda seria la siguiente:

Espero y este tutorial haya sido de su agrado y les resulte util.

Descargar Aplicacion

5 comentarios en “Consumir Web Service con Vb.Net

  1. Tengo un Webservice montado en PHP el cual se ataca mediante Json-RPC.
    Hay alguna forma de montar algo parecido a lo que tu has implementado con un servidor java??.
    Gracias y enhorabuena por el tuto.

  2. Hola, estoy utilizando una web service para windows form pero me sale el siguiente error: Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles. Error: Ese ensamblado no permite llamadores de confianza parcial.

    sabes a que se debe ??

Deja un comentario