2017-10-16 72 views
-1

我有這個hardware來自Patlite, 這個硬件有一個HTTP命令控制功能,例如,如果我複製網址「http://192.168.10.1/api/control?alert=101002」在我的電腦中鍍鉻,它將根據需要激活硬件。c#如何發送HTTP命令,因爲這 - http://192.168.10.1/api/control?alert=101002

我想從我的代碼發送命令。

我想這個代碼沒有運氣:

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(); 

有從手動圖片:enter image description here

感謝

+0

「我試過這段代碼沒有運氣」發生了什麼事? – Oscar

回答

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; 
      } 
     } 

這樣的代碼使用url 「http://192.168.10.1/api/control?alert=101002」 送得到request.Good運氣!

+0

非常感謝,所以我只需要打開它作爲WebClient作爲Chrome? –

+0

@ Eran.G是的,效果是一樣的。 –

1

您需要爲此創建一個WebRequest實例。

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

您可能需要將某些屬性設置爲請求方法和憑據才能使其工作。

看到這個:

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

+0

當你回答我時,我只是編輯答案,添加我所嘗試的。 –

+0

@ Eran.G但是你不會說你在代碼中犯的錯誤。發生了什麼? – Oscar

+0

正如你所看到的,W.Ym幫助我,因爲它很清楚,請從我的問題中刪除-1。 –