Come inviare e ricevere dati con un http webrequest?

Richieste di supporto in merito a problemi su hardware e firmware

16/05/2016 18:54:20
Gravatar
Totale Interventi 3

Come inviare e ricevere dati con un http webrequest?

Ciao a tutti, Smile

sono nuovo del sito e alle prime armi con il microframework(e del linguaggio C#)....Ho provato il codice da voi proposto nella sezione HTTP in cui si evidenzia con un codice di esempio come effettuare una richiesta http ad un URL.

Io ho netduino plus 2 con framework 4.2 e come ide visual studio 2010...

Il mio obiettivo è di inviare e ricevere delle richieste dai server di telegram (applicazione tipo whatsapp).

Quando eseguo con l'emulatore il vostro codice ottengo il seguente errore se metto come URL quello di telegram che è un https:

Eccezione first-chance di tipo 'System.Exception' in mscorlib.dll.

mentre se uso come url quello di google cioè http://www.google.it ottengo la seguente eccezione:

Eccezione first-chance di tipo 'System.ArgumentOutOfRangeException' in mscorlib.dll

Potete aiutarmi a risolvere questo problema?

Essendo nuovo del .net micro framework non saprei se l'emulatore permette tale operazione e se la classe HttpWebRequest gestisce gli url https...

vi riporto il codice da voi proposto:

HttpWebRequest request = HttpWebRequest.Create("https://api.telegram.org.....") as HttpWebRequest;

// Invio della richiesta

HttpWebResponse response = request.GetResponse() as HttpWebResponse;

// Uso uno stream reader per leggere la risposta

using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{

// Se lo status code http è 200 (ok)

if (response.StatusCode == HttpStatusCode.OK)
{

// Debug del contenuto della risposta

Debug.Print(sr.ReadToEnd());

}

else
{

// Debug dello status code ottenuto (ad es. 404 Not Found)

Debug.Print(response.StatusDescription);

}

}

}

Grazie...

17/05/2016 09:08:08
Gravatar
Totale Interventi 75

Re: Come inviare e ricevere dati con un http webrequest?

Ciao "Archimede" Wink,

come prima cosa ti consiglio vivissimamente di aggiornare la tua scheda, l'SDK per Visual Studio e Visual Studio stesso.

La versione più recente del .NETMF è la 4.3 QFE2 (detta anche 4.3.1). Trovi tutto quello che ti serve qui. Per la versione di Visual Studio, tecnicamente la più recente sarebbe la 2015 Update 2 e non la 2013, ma per poterlo utilizzare con il .NETMF servono delle patch che rendono più complicato l'aggiornamento, senza ottenere poi specifici miglioramenti nello sviluppo di applicazioni NETMF.

Quanto alla tua domanda specifica, tieni conto che il supporto a SSL/TLS è disponibile su pochissime board, e anche sull'emulatore c'è un bug che va fixato come indicato qui. Sulla Netduino 2 il supporto SSL/TLS non è però disponibile Cry.

Tra le poche schede a supportarlo ci sono quelle di GHI (in particolare quelle basate sui moduli G120, purtroppo con firmware proprietario non open e, anche se è un progetto "fermo", la Hydra, che se non altro è pienamente open-source) e la Netduino 3 attraverso l'interfaccia WiFi.

Anche noi, come Innovactive, stiamo lavorando per avere una board basata su STM32F4 che supporti SSL/TLS. Qualche passo in questa direzione è stato già fatto utilizzando OpenSSL su board con RAM esterna, ma vorremmo riuscire ad integrare mbedTLS (prima PolarSSL), sicuramente più "leggero" e adatto ad applicazioni embedded.

17/05/2016 17:54:12
Gravatar
Totale Interventi 3

Re: Come inviare e ricevere dati con un http webrequest?

Grazie per i consigli Smile ,
allora proverò ad usare thingspeak che possiede delle api che permettono la comunicazione con netduino...ho visto anche un esempio...
"Mi dispiace non poter usare telegram, con i suoi bot si possono effettuare delle operazioni semplici ed efficaci..."

Scusa se ti pongo quest'altra domanda(sono alle prime armi):
se non ho capito male il netduino 3 con l'interfaccia wifi "risolve" il problema del (Https) SSL/TLS.
Posso farlo anche io con un modulo wi-fi(ad esempio un ESP8266) per il mio netduino+2 a poter effettuare una richiesta https?

Grazie.

19/05/2016 09:31:12
Gravatar
Totale Interventi 75

Re: Come inviare e ricevere dati con un http webrequest?

L'utilizzo dell'ESP8266 è possibile e relativamente facile se utilizzi il progetto che Martin Calsyn ha pubblicato come package NuGet su https://www.nuget.org/packages/IngenuityMicro.Hardware.ESP8266/ 

23/05/2016 19:06:33
Gravatar
Totale Interventi 3

Re: Come inviare e ricevere dati con un http webrequest?

Grazie mille Smile per tutte le tue informazioni,

inizierò prima a fare un po di esperienza con thingspeak e senza usare il modulo wifi. Poi quando comprerò il modulo wifi seguirò tutti i  link che mi hai suggerito...

Per il momento posso dirvi che per effettuare una richiesta http su thingspeak con il netduino plus o plus 2 ho preso e modificato per i miei dati il codice che potete trovare al link di thingspeak: http://community.thingspeak.com/tutorials/netduino/create-your-own-web-of-things-using-the-netduino-plus-and-thingspeak/

Questo link vi porta passo passo nel configurare il vostro netduino, offre anche un client per inviare i dati sul vostro account thingspeak e tanto altro ancora...Buon divertimento a tutti. Smile