Visual Basic.NET - Consumir un webservice desde vb.net (windows form)

 
Vista:

Consumir un webservice desde vb.net (windows form)

Publicado por Dante H. (2 intervenciones) el 13/08/2021 14:34:39
Hola

Estoy intentando hacer una aplicación VB.net (windows application), que consuma un webservice.

A. El primer paso ha transcurrido bien:

Abro el explorador de soluciones
Clic derecho sobre la aplicación
Agregar Referencia de Servicio
Escribo la URL
Me salen los métodos que maneja el WS y clic a Agregar
El App.config generado queda así:

<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ServiceSoap" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://cwp-vm-matrixw/Tiendas/service.asmx"
binding="basicHttpBinding" bindingConfiguration="ServiceSoap"
contract="ServiceReference1.ServiceSoap" name="ServiceSoap" />
</client>
</system.serviceModel>
</configuration>

------------------------------------------------------------------------------------------
B. Aqui inicia el problema, porque no se ve claro que nombre o key debo utilizar para referirme al Webservice

Cuando hago esto mismo en ASP.Net, en el config.web me sale una entrada asi:

<add key="cwp_vm_matrixw.service" value="http://cwp-vm-matrixw/Tiendas/service.asmx"/>

Y en la pagina web yo puedo hacer referencia al key generado, de esta forma:

Dim ws As New cwp_vm_matrixw.Service

TextBox2.Text = ws.Dobla(3)

donde Dobla es un método del webservice que te devuelve el doble del número que le pasas.

C. Como debo hacer esto mismo en VB.Net?

Veo objetos que apuntan al webservice, pero no se como usarlos

Puedo hacer por ejemplo

Dim ws3 As New ServiceReference1.GerenteRequest
Dim ws4 As New ServiceReference1.ConectadoResponse

donde Gerente y Conectado son métodos del webservice, pero no se como usarlos

Gracias y saludos desde Panamá
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consumir un webservice desde vb.net (windows form)

Publicado por Dante (2 intervenciones) el 29/08/2021 19:57:09
Hola Giancarlo

Gracias por tu respuesta.
Yo ya había intentado el ejemplo del artículo que me recomiendas, pero lamentablemente el link del webservice del ejemplo no está disponible.

No entanto te comento que ya resolví el problema.
Lo primero es que la lista de métodos del webservice, se muestra dependiendo de la versión del .net, cuando adicionas el service refference. En 2005 sale, en 2010 no.
Cuando me di cuenta de esto, continué mis esfuerzos con 2005 y lo concluí.

El código es simple y corto:

1
2
3
4
5
6
7
8
Imports wsMatrix = WindowsApplication2.Servicio1
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim wsMio As New wsMatrix.Service
        TextBox2.Text = wsMio.Dobla(TextBox1.Text)
    End Sub
End Class

donde wsMatrix es un nombre arbitrario que se le da al espacio de nombres,
WindowsApplication2 es el nombre de la aplicación y Servicio1 es el nombre que le di al web reference cuando lo adicioné.
wsMio es otro nombre arbitrario local que se le da al servicio. Traté de evitarlo, pero parece que es obligatorio crearlo
Dobla es uno de los métodos del servicio.

##########################################
En 2010 el código es más simple aun

Public Class Form1
Dim wsMio As New ws1.ServiceSoapClient

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
TextBox2.Text = wsMio.Dobla(TextBox1.Text)
End Sub
End Class

En este caso el espacio de nombre se busca en la entrada client del archivo app.config y no hay que usar Imports

1
2
3
4
5
<client>
            <endpoint address="http://cwp-vm-matrixw/Tiendas/service.asmx"
                binding="basicHttpBinding" bindingConfiguration="ServiceSoap"
                contract="ws1.ServiceSoap" name="ServiceSoap" />
        </client>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar