2017-09-16 3 views
0

Je souhaite me connecter si mon Arduino est disponible sur le réseau. J'essaie d'accéder au serveur Web Arduino en utilisant un client HTTP et en traitant la réponse JSON.Win10 IOT/UWP: Comment détecter si un périphérique réseau (Arduino) est disponible

Puisque ping n'est pas disponible dans UWP quelles sont mes options? (Voir: Article)

Une option consisterait à gérer l'exception du client HTTP. Mais existe-t-il un moyen plus élégant de vérifier la connexion avant de demander les données JSON?

Répondre

0

Une méthode peut être d'utiliser le HTTPClient pour faire un GetAsync() et vérifier le code d'état qui en sort. En fonction de vos contraintes de temps, vous pouvez attendre qu'il expire naturellement ou transmettre un jeton d'annulation pour le rompre plus tôt que les valeurs par défaut.

D'ici https://docs.microsoft.com/en-us/windows/uwp/networking/httpclient (légèrement modifié):

//Send the GET request asynchronously and retrieve the response as a string. 

Windows.Web.Http.HttpResponseMessage httpResponse = new Windows.Web.Http.HttpResponseMessage(); 
string httpResponseBody = ""; 

try 
{ 
    //Send the GET request 
    httpResponse = await httpClient.GetAsync(requestUri); 
    if(httpResponse.IsSuccessStatusCode) { /* Do something with it */ } 
    else { /* Do fallback here */ } 
} 
catch (Exception ex) 
{ 
    httpResponseBody = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message; 
} 
+0

C'est ma solution actuelle déjà - je pensais qu'il pourrait y avoir quelque chose de plus élégant là-bas. – Christoph