18 messaggi dal 09 maggio 2005
Buongiorno a tutti
Devo realizzare un webservice che possa interfacciarsi al servizio di Aruba per l’invio allo SdI (sistema di interscambio) delle fatture in formato xml.
Aruba non ha una libreria da poter utilizzare per cui devo fare tutto da zero e su questo argomento per me è tutto nuovo.

Il servizio deve poter svolgere una serie di operazioni attraverso chiamate specifiche a fronte delle quali intercettare una risposta.

Ad esempio per l’autenticazione: “POST base url autenticazione/auth/signin”
richiesta “HTTP request”
POST /auth/signin HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=password&username=Utente&password=Password

a cui segue “HTTP response”
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 287
{
"access_token" : "5a74190d2976e5a6",
"token_type" : "bearer",
"expires_in" : 1800,
"refresh_token" : "6643bfe8383daace",
"userName" : "Utente",
"as:client_id" : "Auth",
".issued" : "Tue, 24 Aug 2021 10:35:48 GMT",
".expires" : "Tue, 24 Aug 2021 11:05:48 GMT"
}

E così anche per altre richieste.

Il fatto è che non so da che parte iniziare per fare questo e non sono riuscito a trovare un esempio di codice

Un’altra cosa: credo che questo debba essere realizzato e utilizzato sul web attraverso un sito ad hoc, c’è la possibilità di poterlo utilizzare anche all’interno di un programma desktop.

Utilizzo VS2019 in Vb.

Vi ringrazio anticipatamente per il vostro aiuto
Marco
120 messaggi dal 19 ottobre 2005
Se ho capito bene mi pare che tu voglia realizzare un Web Service che fungerà da client verso un altro Web Service (SDL, fornito da Aruba). Giusto?

Il servizio offerto da Aruba mi pare che sia un servizio REST, corretto?

Se si, puoi utilizzare la HttpClient (https://docs.microsoft.com/it-it/dotnet/api/system.net.http.httpclient?view=net-5.0) che è ti permette di gestire le request e le response HTTP.

Ciao.
Modificato da santoni1981 il 01 settembre 2021 13:53 - Marco Santoni
18 messaggi dal 09 maggio 2005
Ciao
Si, il servizio che Aurba mette a disposizione sono una serie di API REST.

Relativamente alla realizzazione del servizio, sono obbligato a farlo sul web e/o posso farlo anche in una windows form?

Marco

P.S.: siamo omonimi?
120 messaggi dal 19 ottobre 2005
Tu il client puoi farlo come preferisci, Windows o web (in quest'ultimo caso può essere un'applicazione web o un servizio web).
La cosa che non capisco però è perché vuoi fare un web service che si interfaccia al servizio di Aruba. Hai la necessità di creare un wrapper da porre tra Aruba e un'altra applicazione?

Se devi solamente utilizzare il servizio REST messo a disposizione di Aruba non hai bisogno di creare un web service ma un'applicazione (Windows o web non è importante) che si interfaccia al servizio REST di Aruba.

Si, siamo omonimi :-).

Ciao.
Modificato da santoni1981 il 01 settembre 2021 15:29 -
18 messaggi dal 09 maggio 2005
Probabile che tu abbia ragione, farò delle prove direttamente dal programma.
Grazie per il momento
Ciao
120 messaggi dal 19 ottobre 2005
Figurati, non ho fatto nulla. Fammi sapere come è andata.
Ciao.
18 messaggi dal 09 maggio 2005
Ciao
Questo è il blocco di codice che ho realizzato ma non non torna ciò che mi aspettavo:

Dim oHttpClient As New Net.Http.HttpClient
Dim oRequest As Net.Http.HttpRequestMessage
Dim oResponse As Task(Of Net.Http.HttpResponseMessage)

Try
oRequest.RequestUri = New Uri(Usr_Xml_csUrlAutDemo & "/auth/signin")
oRequest.Headers.Add("grant_type", "psw&username=usr"&password=psw")
oResponse = oHttpClient.SendAsync(oRequest)
Catch ex As Net.Http.HttpRequestException
MsgBox(ex.Message)
End Try


Questo è quello che ritorna: Id = 3, Status = WaitingForActivation {1}, Method = "{null}", Result = "{Non ancora calcolato}"

Dov'è che sbaglio?
Ciao
120 messaggi dal 19 ottobre 2005
Ciao, ad occhio ti direi che c'è un errore nel modo in cui componi la stringa per l'header, ovvero qui:

oRequest.Headers.Add("grant_type", "psw&username=usr"&password=psw")


Dovrebbe addirittura dare errore di sintassi in compilazione perché c'è un "doppio apice" di troppo (credo l'ultimo).
Ma sei sicuro che sia corretto il valore che stai passando a grant_type? Io non conosco il servizio che stai usando, magari è corretto così, ma mi sembra un po' strana come stringa.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.