我有一个通过以太网连接到静态 IP 上的设备。有一个与设备通信的html接口。接口监控设备的io。它具有更改 IP 地址、子网掩码、MAC 地址和默认网关等内容的配置设置。这也是您向设备发送命令的方式。
我想制作一个 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();
}
任何有关发送帖子的正确方法以及如何格式化帖子数据的帮助将不胜感激。