2017-10-16 7 views
-1

J'ai ce hardware de Patlite, Ce matériel a une fonction de commande de commande HTTP, par exemple, si je copie l'URL "http://192.168.10.1/api/control?alert=101002" pour chromer dans mon ordinateur, il va activer le matériel au besoin.C# Comment envoyer une commande HTTP comme ceci - http://192.168.10.1/api/control?alert=101002

Je veux envoyer la commande depuis mon code.

J'ai essayé ce code avec pas de chance:

System.Net.ServicePointManager.Expect100Continue = false; 
     WebRequest request = WebRequest.Create("http://10.0.22.222/api/control"); 
     request.Method = "post"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     string postData = "alert=101002"; 
     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     request.ContentLength = byteArray.Length; 
     // Get the request stream. 
     Stream dataStream = request.GetRequestStream(); 

     // Write the data to the request stream. 
     dataStream.Write(byteArray, 0, byteArray.Length); 

     // Close the Stream object. 
     dataStream.Close(); 
     WebResponse response = request.GetResponse(); 

Il y a une photo du manuel: enter image description here

Merci

+0

"J'ai essayé ce code sans succès" Que s'est-il passé? – Oscar

Répondre

0
public static string Get(string url, Encoding encoding) 
     { 
      try 
      { 
       var wc = new WebClient { Encoding = encoding }; 
       var readStream = wc.OpenRead(url); 
       using (var sr = new StreamReader(readStream, encoding)) 
       { 
        var result = sr.ReadToEnd(); 
        return result; 
       } 
      } 
      catch (Exception e) 
      { 
       //throw e; 
       return e.Message; 
      } 
     } 

comme ce code utiliser l'URL "http://192.168.10.1/api/control?alert=101002" pour envoyer obtenir la chance de request.Good!

+0

Merci beaucoup, donc j'ai juste besoin de l'ouvrir en tant que WebClient comme Chrome? –

+0

@ Eran.G Oui, l'effet est le même. –

1

Vous devez créer une instance WebRequest pour cela.

WebRequest request = WebRequest.Create("http://192.168.10.1/api/control?alert=101002"); 
WebResponse response = request.GetResponse(); 

Vous devrez peut-être définir certaines propriétés en tant que méthode de requête et informations d'identification pour que cela fonctionne.

Voir ceci:

https://msdn.microsoft.com/en-us/library/456dfw4f(v=vs.100).aspx

+0

Quand vous me répondez, je suis en train d'éditer la réponse pour ajouter ce que j'ai essayé. –

+0

@ Eran.G Mais vous ne dites rien des erreurs que vous avez eu avec votre code. Qu'est-il arrivé? – Oscar

+0

Comme vous pouvez le voir, W.Ym m'a aidé parce que c'était assez clair, s'il vous plaît enlever le -1 de ma question. –