• WinHTTP problems

    From Rob@21:1/5 to All on Tue Jan 22 13:28:44 2019
    I have a *large* legacy program written in VB6, Very successfull,
    works fine on all flavours of Windows up to and including 10

    Now I need to communicate with a third party using TML Basic Auth and
    JSON.

    SO far I have created some short code to test the communications:

    Dim HttpReq As New WinHttp.WinHttpRequest

    HttpReq.SetCredentials "<username>", "<password>", 0


    HttpReq.Open "PUT", "https://<API URL>", False


    HttpReq.setRequestHeader "Content-Type", "application/json"

    HttpReq.Send " "

    HttpReq.Send "GET https://<API URL>"

    Both the Send methods result in:
    {
    "status": "error",
    "code": 401,
    "message": "Access denied"
    }


    The sane credentials do work OK in Postman app.

    What am I missing or doing wrong please?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wolfgang =?utf-8?Q?=CE=95nzinger?=@21:1/5 to All on Sat Feb 16 23:56:56 2019
    Hi Rob,

    not sure why you use "PUT" in the .Open method when a "GET" is what you actually have in mind, and also what

    HttpReq.Send " "

    is intended for.

    Try like this, this works fine here:

    Dim HttpReq As WinHttp.WinHttpRequest
    Set HttpReq = New WinHttp.WinHttpRequest
    HttpReq.Open "GET", "https://www.abc.com/xyz/index.html"
    HttpReq.SetCredentials "<username>, "<password>", 0&
    HttpReq.Send "GET /xyz/index.html"
    Debug.Print HttpReq.ResponseText

    HTH Wolfgang


    Am Tue, 22 Jan 2019 13:28:44 -0000 schrieb Rob:

    I have a *large* legacy program written in VB6, Very successfull,
    works fine on all flavours of Windows up to and including 10

    Now I need to communicate with a third party using TML Basic Auth and
    JSON.

    SO far I have created some short code to test the communications:

    Dim HttpReq As New WinHttp.WinHttpRequest

    HttpReq.SetCredentials "<username>", "<password>", 0


    HttpReq.Open "PUT", "https://<API URL>", False


    HttpReq.setRequestHeader "Content-Type", "application/json"

    HttpReq.Send " "

    HttpReq.Send "GET https://<API URL>"

    Both the Send methods result in:
    {
    "status": "error",
    "code": 401,
    "message": "Access denied"
    }


    The sane credentials do work OK in Postman app.

    What am I missing or doing wrong please?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wolfgang =?utf-8?Q?=CE=95nzinger?=@21:1/5 to All on Sun Feb 17 00:12:40 2019
    Am Sat, 16 Feb 2019 23:56:56 +0100 schrieb Wolfgang Εnzinger:

    Dim HttpReq As WinHttp.WinHttpRequest
    Set HttpReq = New WinHttp.WinHttpRequest
    HttpReq.Open "GET", "https://www.abc.com/xyz/index.html" HttpReq.SetCredentials "<username>, "<password>", 0&
    HttpReq.Send "GET /xyz/index.html"

    The parameter ("GET /xyz/index.html") is redundant here,

    HttpReq.Send

    instead would be sufficient.

    Debug.Print HttpReq.ResponseText

    HTH Wolfgang

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wolfgang =?utf-8?Q?=CE=95nzinger?=@21:1/5 to All on Sat Mar 2 21:31:12 2019
    Am Sat, 16 Feb 2019 23:56:56 +0100 schrieb Wolfgang Εnzinger:

    Try like this, this works fine here:

    Code now archived at http://rosettacode.org/wiki/HTTPS/Authenticated#Visual_Basic

    :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)