I need to load an image by calling an API and passing a JSON string via POST. The API returns a binary PNG image.
There are answers for loading an image from URL and sending a HTTP POST request, but not the two together.
How to get images to appear in Excel given image url
How can I send an HTTP POST request to a server from Excel using VBA?
update: Here is the code I have so far:
Sub LoadQR()
Dim d As Byte
JSON = Range("C5").Value
 
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Url = "https://xxxxxxx/xxxx/api/qr/v1/gen"
objHTTP.Open "POST", Url, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.setRequestHeader "Content-Type", "application/json"
objHTTP.send JSON
 
    ' Put response data into a file.
    Open "qr.png" For Binary As #1
    d = objHTTP.ResponseText
    Put #1, 1, d
    Close
    
    ' Load the data file as a picture.
    Set myDocument = Worksheets(1)
    myDocument.Shapes.AddPicture _
    "qr.png", _
    True, True, 500, 100, 70, 70
End Sub
Getting type mismatch because API response is actually binary, but objHTTP.ResponseText is a string.. any advice?
