2010-08-18 28 views
18

Necesito hacer algunas Consiguiendo y anuncio a un servicio web REST de VB6. ¿Cuál es la mejor y más simple forma de hacer eso?GET/POST al servicio web REST

+14

Mis condolencias por tener que consumir un servicio web en VB6. –

+2

@Ryan, al menos es mucho mejor que reescribir varias clases de php en vb y luego mantenerlas. Y dado que estoy haciendo el servicio web, va a ser lo más simple posible, es decir, sin xml, json, etc. La respuesta será una sola cadena corta (¿una palabra?) O posiblemente un número. – Echo

+0

LOL Quiero volver a C# (waaaa) LOL – garaber

Respuesta

24

Usted tendrá que añadir una referencia a la biblioteca MSXML :

Dim sUrl As String 
Dim response As String 
Dim xmlhttp 

Set sUrl = "http://my.domain.com/service/operation/param" 

Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP") 
xmlhttp.open "POST", sURL, False 
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
xmlhttp.send() 

Dim response As String = xmlhttp.responseText 

Set xmlhttp = Nothing 
+0

maravilloso, justo lo que estaba buscando. – Echo

+1

¡Y es muy similar al uso de XMLHTTPRequest en JavaScript dentro de Internet Explorer! –

+0

@Justin No tengo MSXML2, tengo MSXML.XMLHTTPRequest, ¿es eso similar? – Echo

0

Si necesita GET/POST de un servicio Web REST simplemente puede escribir una solicitud HTTP a la URL del servicio web:

http://www.webservicehost.com/webserviceop?<any parameters> 

Si tiene que pasar objetos complejos que se necesitan para serializarlos y luego se pasa como parámetros

entonces se puede obtener la respuesta HTTP en el formato que el servicio web de regreso si lo decide (JSON, XML, etc.)

+1

Su respuesta no aborda cómo implementar esto en VB6. –

+0

Creo que echo conoce los principios y está buscando consejos vb6 específicos. – MarkJ

+1

yup, solo los detalles es todo lo que necesitaba. No toco VB6 mucho más, afortunadamente, ahora trabajo con PHP y Python. – Echo

12

Hace tiempo que necesitaba esto para las solicitudes GET en una antigua aplicación heredada, y dado que la respuesta aceptada no se compila, pensé en publicar algún código de trabajo. Estoy seguro de que ayudará un poco de suela mal usando VB6 en el futuro;) Aquí hay una función agradable y limpia.

Public Function WebRequest(url As String) As String 
    Dim http As MSXML2.XMLHTTP 
    Set http = CreateObject("MSXML2.ServerXMLHTTP") 

    http.Open "GET", url, False 
    http.Send 

    WebRequest = http.responseText 
    Set http = Nothing 
End Function 

Y aquí es un ejemplo de uso:

Dim result As String 
Dim url As String 

url = "http://my.domain.com/service/operation/param" 
result = WebRequest(url) 

feliz VB6ing! :)

+0

No existe tal cosa como feliz VB6ing ... solo dolor y miseria .... –

+0

lol. No podría estar mas de acuerdo. Es el [lenguaje más temido] (https: // stackoverflow.com/insights/survey/2017/# technology-most-loved-tem-and-wanted-languages) en 2017 después de todo;) – craftworkgames