Sei sulla pagina 1di 5

Introduccion

Saludos a todos desde Perú, como es mi estilo este ejemplo es sencillo y práctico
para todos aquellos que quieran iniciarse en el llamado de Web Service, para correr
el ejemplo es necesareo el .Net Framework (el VS lo instala automáticamente) y
tener salida a Internet, para poder consumir el Web Service. Explicaremos como
usar una referencia Web, y como usarla en nuestra aplicación, en este caso en una
aplicacion de escritorio, WindowsForm, con C# y VB.

Manos a la Obra
1. Bueno lo primero y que primero que debemos hacer es crear nuestro proyecto
en VS.Studio, crearemos una aplicación Windows.Form con C# y VB, yo use estos
lenguajes pero ustedes pueden hacerlo con J#, son los mismo pasos.

2. Agregamos los controles mostrados en la siguiente imagen, 3 cajas de


texto: txtMin, txtMax, txtCount, un botón cmdRnd, y una lista lstNums.

La funcion que vamos a consumir requiere tres parametros el numero minmo, el


maximo, y la cantidad de numero que deseamos. Este WebMethod, retorna un
arreglo de enteros. Nosotros solo vamos a consumir un metodo del servicio Web, es
como si llamaramos a una funcion de algun otro proyecto, pero con la diferencia
que esta funcion esta en un webService. Para poder usar los metodos de un
WebService debemos agregar una referencia en el explorador de souciones (para
C# y VB es lo mismo).

3. Agregar una Referencia Web a la url del Web Service


En ventana que aparecela url colocamos lo
siguiente: http://www.golemproject.com/Apps/96/Generator.asmx, que es la
direccion del Web Service que vamos a consumir, pueden probarlo directamente
desde su navegador. Damos click en el boton agregar referencia (no olvides ponerle
nombre a la referencia yo use RandomNumber):

Listo ya tenemos nuestra referencia a nuestro proyecto ahor podemos consumir


todos los servicios de este Web Service.

Agregando el código a nuestor Windows.Form.


Primero debemos importar el NameSpace, para poder referenciarlos mas rápido en
la codificación, esto se hace en nuestro Formulario:

[C#]

using rnd = CallWebService.RandomNumber;

[VB]
Imports Rnd = vbCallWebService.RandomNumber

Bueno ahora se creara una variable publica, un arreglo, y un función publica que
llenara el listBox con los elementos del arreglo. Algunos a esta función que no
retorna ningún tipo de datos suelen llamarloe procedimientos pero ese es otro
tema.

[C#]

//variables globales
public int[] numbers;

//funcion para llenar el listBox


public void LlenarListBox() {
//limpiando la lista
lstNums.Items.Clear();

//llenando el ListBox
for ( int i=0 ; i< numbers.Length; i++){
lstNums.Items.Add(numbers[i]);
}
}

[VB]

'//variables globales
Public numbers As Integer()

'//funcion para llenar el listBox


Public Sub LlenarListBox()

'limpiando el ListBox
lstNums.Items.Clear()

'//llenando el ListBox
For i As Integer = 0 To numbers.Length - 1
lstNums.Items.Add(numbers(i))
Next

End Sub

Nota: Solo se declara el arreglo, no es necesario darle el tamaño, este se le dará en


tiempo de ejecución.

Consumiendo el Web Service: ahora toca lo importante y fundamental, consumir


un servicio del Web Service que hemos hecho referencia. Primero recuperamos las
variables ingresadas por el usuario, usamos el try, para validar que se ingresen
datos correctos. Luego le damos tamaño al arreglo con el valor ingresado. Ahora
para poder consumir un servicio, instanciamos un objeto, del webService, y
posteriormente llamamos a un metodo de este webService, con el cual llenamos el
arreglo, en otras palabras en código sería asi:

[C#]

private void cmdRnd_Click(object sender, System.EventArgs e) {

//varaibles de uso
int num, min, max;
//metiendole una excepcion por siaca
//haya error
try {
num = Convert.ToInt16(txtCount.Text);
min = Convert.ToInt16(txtMin.Text);
max = Convert.ToInt16(txtMax.Text);

//reservando el tamaño del arreglo


numbers = new int[num];

//Declarando el WEbSErvice
rnd.Generator wsRnd = new rnd.Generator();

//CONSUMIENDO EL WEB SERVICE


numbers = wsRnd.GenerateRandomDotOrg(min,max,numbers.Length);

} catch (Exception ex) {


MessageBox.Show("ocurrio un error: " +
ex.Message.ToString());
}

//ahora llamar a la funcion que llena el listBox


this.LlenarListBox();
}

[VB]

Private Sub cmdRnd_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles cmdRnd.Click
'//varaibles de uso
Dim num, min, max As Integer

'//metiendole una excepcion por siaca


'//haya error
Try
num = Convert.ToInt16(txtCount.Text)
min = Convert.ToInt16(txtMin.Text)
max = Convert.ToInt16(txtMax.Text)

'//reservando el tamaño del arreglo


ReDim numbers(num)

'//Declarando el WEbSErvice
Dim wsRnd As New Rnd.Generator

'//CONSUMIENDO EL WEB SERVICE


numbers = wsRnd.GenerateRandomDotOrg(min, max, num)

Catch ex As Exception
MessageBox.Show("ocurrio un error: " + ex.Message.ToString())
End Try

'//ahora llamar a la funcion que llena el listBox


Me.LlenarListBox()

End Sub

Potrebbero piacerti anche