静的 IP でイーサネット経由で接続されたデバイスがあります。デバイスと通信するための html インターフェイスがあります。インターフェイスは、デバイスの io を監視します。IP アドレス、サブネット マスク、MAC アドレス、デフォルト ゲートウェイなどを変更するための構成設定があります。これは、デバイスにコマンドを送信する方法でもあります。
必要な機能のみを表す C# Windows フォームを作成したいと考えています。私が追いついているのは、フォームからコマンドを送信することです。
html インターフェイスは jquery を使用してコマンドをデバイスに送り返します。
function sendCMD(indata) {$.post("setcmd.cgx", indata, function (data) {});
sendCMD({ver : "1",cmd : "abf"});
私は現在、URIのhtmlを返すだけのWebRequestを介して投稿を送り返そうとしています。これに WebRequest を使用してはならない、または投稿データを間違って送信しているという結論に達しました。
私が現在持っているもの:
private void btnAimingBeamOn_Click(object sender, EventArgs e)
{
string postData = "\"setcmd.cgx\", {\n\rver : \"1\", \n\rcmd : \"abn\"\n\r}, function (data) {}";
byte[] byteArray = Encoding.UTF8.GetBytes(
Uri target = new Uri("http://192.168.3.230/index.htm");
WebRequest request = WebRequest.Create(target);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
txtABNStatus.Text = (((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
txtABNResponse.Text = (responseFromServer);
reader.Close();
response.Close();
dataStream.Close();
}
投稿を送信する適切な方法と、投稿データをフォーマットする方法についての助けをいただければ幸いです。