- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Richiamare un API, problemi
-
Richiamare un API, problemi
Buongiorno a tutti espongo subito il mio problema.
Una società ci ha realizzato, per una collaborazione, un'API raggiungibile in PHP che accetta 3 parametri testuali e 3 file.
Nella scarna documentazione mi hanno assicurato che è necessario chiamare l'API con un semplice FORM POST di tipo "enctype" con 3 campi di tipo TEXT e 3 campi FILE.In pratica i nostri utenti con un semplice click passano dei dati ai nostri partner con i quali hanno stipulato un contratto, quindi di fatto non compilano alcun form, ma è tutto simulato, anche perchè tanto le informazioni quanto i file risiedono già sul nostro server.
Partiamo dal presupposto che l'attuale piattaforma è in ASP.
Ho trovato questo che sembra fare al caso mio.'sends multipart/form-data To the URL using WinHttprequest/XMLHTTP
'FormData - binary (VT_UI1 | VT_ARRAY) multipart form data
Function WinHTTPPostRequest(URL, FormData, Boundary)
Dim http 'As New MSXML2.XMLHTTP'Create XMLHTTP/ServerXMLHTTP/WinHttprequest object
'You can use any of these three objects.
Set http = CreateObject("WinHttp.WinHttprequest.5")
'Set http = CreateObject("MSXML2.XMLHTTP")
'Set http = CreateObject("MSXML2.ServerXMLHTTP")'Open URL As POST request
http.Open "POST", URL, False'Set Content-Type header
http.setRequestHeader "Content-Type", "multipart/form-data; boundary=" + Boundary'Send the form data To URL As POST binary request
http.send FormData'Get a result of the script which has received upload
WinHTTPPostRequest = http.responseText
End FunctionUnico dubbio: come diavolo imposto "FormData"?
La spiegazione in inglese parla di "binary (VT_UI1 | VT_ARRAY)", ma io sono sinceramente spiazzato.
Ho trovato anche questo script che dovrebbe servire a convertire il file in codice binario(?)Function ReadBinaryFile(FileName)
Const adTypeBinary = 1'Create Stream object
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")'Specify stream type - we want To get binary data.
BinaryStream.Type = adTypeBinary'Open the stream
BinaryStream.Open'Load the file data from disk To stream object
BinaryStream.LoadFromFile FileName'Open the stream And get binary data from the object
ReadBinaryFile = BinaryStream.Read
End FunctionCome usarli insieme e riuscire quindi ad inviare un form all'API?
Inoltre come convertire in binario anche i dati testuali dato che la chiamata http è di tipo "multipart/form-data"?
Avete idee?Grazie!