It is currently 25 May 2020, 23:56 Advanced search

WEBAPI inviare un file

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

WEBAPI inviare un file

Postby poidomani » 18 March 2020, 17:27

la sintassi per inviare un file quale potrebbe essere?
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby gmonteleone » 19 March 2020, 10:15

poidomani wrote:la sintassi per inviare un file quale potrebbe essere?


passare la base64 del file come stringa e gestire la lettura/il salvataggio del file negli eventi del documento.
Gianluca Monteleone
Robinson S.r.l.
gmonteleone
 
Posts: 48
Joined: 18 January 2017, 10:49

Re: WEBAPI inviare un file

Postby poidomani » 19 March 2020, 10:20

con postman non sono riuscito, provo direttamente da codice, tu hai già provato?
Grazie
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby gmonteleone » 19 March 2020, 12:04

poidomani wrote:con postman non sono riuscito, provo direttamente da codice, tu hai già provato?
Grazie


Si, ho fatto diverse WEB API con inde.
Non uso postman, di solito le provo con l'estensione di Chrome Talend API Tester.
Per come l'ho gestito, il fatto che sia un file è solo a livello di concetto, di fatto sia in GET sia in POST io lo intendo come un qualsiasi campo di tipo stringa.

es.

AquaCollMasAllegati.json
{
"AquaMasAllegati":[
{
"Procedura":"CNF",
"Chiave":"C000021IMP21587",
"Riga":20,
"Nomefile":"CNF_C000021IMP21587_20.jpg",
"Oggetto":"prova di alleg. 2",
"Base64File": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEB..."
}
]
}

Poi all'interno del documento AquaMasAllegati gestisco il fatto che, se sono in POST, dal valore della proprietà "Base64File" creo il file.
Viceversa, in GET, popolo la proprietà "Base64File" con la stringa base 64 del file.
Gianluca Monteleone
Robinson S.r.l.
gmonteleone
 
Posts: 48
Joined: 18 January 2017, 10:49

Re: WEBAPI inviare un file

Postby poidomani » 19 March 2020, 13:03

grazie, io provo a lasciarlo gestire da INDE sia in PUT che in POST avendo creato le classi col flag WebApi perché il blob lo lascio sul db
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby poidomani » 19 March 2020, 15:06

questo è il codice che ho scritto seguendo la documentazione e sotto c'è quel che vedo in Fiddler, anzi che non vedo, cioè il BODY, perché?
Un sacco di ore perse per una michiata!
Code: Select all
string Url = "http://localhost/wstour/Allegato"
IDMap idm = new()
idm.setValue("ID_TYPE", "POST")
string s = "{"ID":"CA88E373-803F-4126-B329-A0CA877AA593", "Tipo":"preven"}"
idm.setValue("ID_BODY", s)
//idm.setValue("Blob", blobx)
CheckinTO.getHTTP(Url, idm, [Username], [Password])
string resp = getHTTP(Url, [postdata], [username], [password])
Attachments
Cattura1.JPG
Cattura1.JPG (50.59 KiB) Viewed 301 times
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby poidomani » 19 March 2020, 16:18

ho provato con l'esempio di Progamma Client e stesso risultato
Attachments
Cattura2.JPG
Cattura2.JPG (65.19 KiB) Viewed 290 times
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby poidomani » 19 March 2020, 17:42

ho fatto con INDE per far prima... niente me lo faccio in Visual Studio
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby poidomani » 24 March 2020, 14:56

inviando un base64 non capisco perché vada a cercare in C:\WINDOWS\SysWOW64\inetsrv un file col nome uguale al valore della stringa base64

100 - WebApi call detected (Uri = /wstour/Allegato)
10 [INFO] 100 - Response status code: 500
10 [INFO] 100 - Response content length: 1021
10 [ERR] 100 - Unknown error:
System.IO.FileNotFoundException: Il file 'C:\WINDOWS\SysWOW64\inetsrv\iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOCAIAAACU32q7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAUSURBVChTY3gro0IQjSoa1opkVABqPsWJZ7ADQQAAAABJRU5Erk...
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
User avatar
poidomani
 
Posts: 2945
Joined: 4 November 2010, 15:07
Location: Bologna

Re: WEBAPI inviare un file

Postby lucabaldini » 24 March 2020, 15:07

Così ad occhio direi che il motivo è che il path viene assolutizzato con il current path... e la current directory di IIS è quella...
Però non ricordo letture di file su disco nel gestore delle WebAPI... Allegato è un metodo custom? Come è fatta la tua WebAPI? Sei tu che scrivi il file? Probabilmente non hai indicato il path completo...
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4319
Joined: 1 October 2010, 17:03
Location: Bologna

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 11 guests

cron