23

I need to do some GETing and POSTing to a RESTful web service from VB6. What is the best and simplest way to do that?

StayOnTarget
  • 11,743
  • 10
  • 52
  • 81
  • 19
    My condolences for having to consume a webservice in VB6. – Ryan Tenney Aug 18 '10 at 20:03
  • 3
    @Ryan, At least it is much better than rewriting several classes from php into vb and then maintaining them. And since I'm making the webservice, it is going to be as simple as possible, ie no xml, json, etc. The response will be just a single short string(one word?) or possibly a number. – Echo says Reinstate Monica Aug 18 '10 at 20:15
  • LOL I want to go back to C# (waaaa) LOL – garaber Apr 01 '14 at 18:33

3 Answers3

31

You'll need to add a reference to the MSXML library:

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
Matt Johnson-Pint
  • 230,703
  • 74
  • 448
  • 575
Justin Niessner
  • 242,243
  • 40
  • 408
  • 536
15

I needed this for GET requests in an old legacy application recently, and since the accepted answer doesn't compile I thought I'd post some working code. I'm sure it will help some poor sole using VB6 in the future ;) Here's a nice clean function.

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

And here's example usage:

Dim result As String
Dim url As String

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

Happy VB6ing! :)

craftworkgames
  • 9,437
  • 4
  • 41
  • 52
  • 2
    lol. I couldn't agree more. It is the [most dreaded language](https://stackoverflow.com/insights/survey/2017/#technology-most-loved-dreaded-and-wanted-languages) in 2017 after all ;) – craftworkgames Apr 06 '17 at 23:52
0

If you need to GET/POST from a REST Web service you can simply write an HTTP Request to the URL of the webservice:

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

If you need to pass complex objects you will need to serialize them and then pass them as parameters

You can then get the HTTP Response in whatever format the Web service decides to return as (JSON, XML, etc)

Scott Lance
  • 2,239
  • 1
  • 18
  • 19