' In questo esempio viene effettuata la chiamata ad un servizio WebApi REST messo a disposizione dal servizio "Allerta Meteo" della regione Emilia-Romagna che restituisce i livelli idrometrici del fiume Reno in 3 località diverse. ' Il codice può essere inserito in un task per la lettura periodica. Dim Q as new QWTable Q.Database=DB Q.sql="select * from IOTLOG" Q.allowallrecords=false Q.active=true ' Stazioni di lettura dim sensors= new dbarray("BONCONVENTO","CHIUSA CASALECCHIO","SASSO MARCONI") ' Url web service corrispondente Dim urls As new Dbarray urls(1)= "https://allertameteo.regione.emilia-romagna.it/api/jsonws/datiTempoReale-prevPiog-portlet.img/get-time-series/?stazione=-/1131382,4460927/simnbo&variabile=254,0,0/1,-,-,-/B13215" urls(2)= "https://allertameteo.regione.emilia-romagna.it/api/jsonws/datiTempoReale-prevPiog-portlet.img/get-time-series/?stazione=-/1128243,4447318/simnbo&variabile=254,0,0/1,-,-,-/B13215" urls(3)= "https://allertameteo.regione.emilia-romagna.it/api/jsonws/datiTempoReale-prevPiog-portlet.img/get-time-series/?stazione=-/1124785,4438151/simnbo&variabile=254,0,0/1,-,-,-/B13215" dim f as integer for f=1 to urls.size Dim webClient As New System.Net.WebClient Dim json As String = webClient.DownloadString(Urls(f)) ' Recupero della risposta Dim obj As Newtonsoft.Json.Linq.JArray = Newtonsoft.Json.Linq.JArray.Parse(json) Dim i as integer Dim Data As DateTime Dim Valore as Double for i=0 to obj.count-1 ' Il quarto nodo è quello dei Values Data=DateAdd(Dateinterval.Second,ctype(obj(i)("t"),Newtonsoft.Json.Linq.JValue).value/1000,New Date(1970,1,1,0,0,0)).toLocalTime Valore=ctype(obj(i)("v"),Newtonsoft.Json.Linq.JValue).value if not empty(Data) and not empty(Valore) if not q.rowset.findkey(data,"RENO",sensors(f)) q.beginappend() q.replace("DATA",data) q.replace("DEVICENAME","RENO") q.replace("SENSORNAME",sensors(f)) End If q.replace("VALUE",Valore) q.saverecord() End If next Next Q.active=false