我有一个通过静态IP上的以太网连接的设备。有一个html接口与设备进行通信。该接口监视设备的io。它具有配置设置来更改诸如IP地址,子网掩码,MAC地址和默认网关等内容。这也是你如何发送命令到设备。通过winform发送数据
我想使C#Windows窗体仅代表我需要的功能。我陷入困境的地方是从表单发送命令。
html界面正在使用jQuery将命令发送回设备。
function sendCMD(indata) {$.post("setcmd.cgx", indata, function (data) {});
sendCMD({ver : "1",cmd : "abf"});
目前我正在试图通过一个WebRequest的,这是刚刚返回URI的HTML到后发回。我得出的结论是,我不应该为此使用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();
}
与发帖子以及如何发布数据格式将最欣赏的适当方法任何帮助。
查找到['WebClient'](http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx)类,这简化/去掉了很多此样板的HTTP代码。它将能够为您发布数据。 – qJake