Avatar billede Dan Novice
26. marts 2020 - 18:02 Der er 4 kommentarer

VBA kode til API

Jeg skal lave en opkobling til DanDomain via REST API, og har fået det til at virke i Postman. Men jeg kan ikke få det til at virke via VBA. Min kode er flg.:

Public Sub ReadXML()
    Dim reader As New XMLHTTP60
    Dim strBody As String
   
    'strBody = "user:admin,password:12345678"j - denne virker heller ikke...
   
    strBody = "{ " & Chr(34) & "user" & Chr(34) & ":" & Chr(34) & "admin" & Chr(34) & ", " & Chr(34) & "password" & Chr(34) & ":" & Chr(34) & "12345678" & Chr(34) & " }"

    With reader
            .Open "POST", "http://brinkland-shop.net/admin/modules/importexport/import_v6.aspx?file=productupdate.xml", False
           
            .setRequestHeader "Content-Type", "Form-data"
            .send strBody
   
    End With

Der er mere kode, men det her giver en tilbagemelding 500.

Er der en VBA ekspert der kan omforme Postman til VBA?
Avatar billede Gustav Ekspert
27. marts 2020 - 08:52 #1
Måske du kan finde noget i mit projekt VBA.CVRAPI:

https://github.com/CactusData/VBA.CVRAPI

Det er i modulet JsonService.bas, den primære funktion findes.
Avatar billede Dan Novice
27. marts 2020 - 09:19 #2
Det er et flot projekt Gustav! At lave API kald fra VBA er lidt af en jungle og jeg har været igennem rigtig meget .

Det du har lavet i Github er rigtig fedt og kan bruges til meget. Desværre bare ikke lige det jeg skal bruge. Sorry...

Er du selv ekspert i VBA?
Avatar billede Gustav Ekspert
27. marts 2020 - 09:54 #3
Jo, det er anderledes, men nu vidste jeg ikke, hvilke konkrete problemer, du er stødt ind i, og jeg har ikke en konto hos DanDomain at teste med. Men derfor kunne der måske godt være en idé at hente.

Ekspert i VBA kan vel godt kalde det, og jeg publicerer noget med ujævne mellemrum på min egen konto:
https://github.com/GustavBrock

Man kan også finde mig på fx Stack Overflow:
https://stackoverflow.com/users/3527297/gustav

og som MVP:
https://mvp.microsoft.com/en-us/PublicProfile/5002361
Avatar billede Dan Novice
27. marts 2020 - 11:16 #4
Okay Gustav! Seriøs.dk - jeg bruger ikke internettet mere til VBA spørgsmål, før jeg har konsulteret dit GitHub doc bibl. :-D

Mit problem kan også vises med dette link:
https://support.dandomain.dk/webshop-hjaelp/moduler/import-eksport/autoimport-eksport/

Her skriver DanDomain at man skal følge den opsætning de har vist i Postman.

Problemet er Body, hvor jeg er usikker/uvidende om koden her:

    .setRequestHeader "Content-Type", "application/form-data"
    .send strBody

Debug.print strBody  = { "user":"admin", "password":"12345678" }

Postman er så flinke at de fortæller hvordan koden skal se ud for stort set alle programmeringssprog ved at klikke på "Code" - UNDTAGEN VBA!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester