У меня есть программное обеспечение, которое я пишу для управления локальным коммутатором в сети LAN, скажем, по IP-адресу 192.172.0.23:8000, всякий раз, когда я пытаюсь загрузить status.xml
с коммутатора или получить В ответ я получаю сообщение о нарушении протокола разделом = исключение responseStatusLine.
Я искал на этих форумах и попробовал исправить keepalive = false, у меня есть
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing = "true"/>
</settings>
</system.net>
в разделе конфигурации App.Config
, но не могу решить проблему, я знаю, Адреса действительны, так как я могу получить к ним доступ в Firefox, et c, две строки кода, которые создают проблему, являются следующими:
String URLString = @"http://" + sIP + @"/state.xml";
try
{
//m_wClient.DownloadFile(URLString, @"C:\Sonardyne\test.xml"); // atempt to download file first to fix issue
XPathDocument doc = new XPathDocument(URLString);
XPathNavigator nav = doc.CreateNavigator();
XPathExpression expr = nav.Compile(@"/datavalues/relaystate");
nav.Select(expr);
switch (nav.Value)
{
case "0":
return false;
case "1":
return true;
default:
ConfigLoadedText.Text = "Failed to Load Satus from Controller IP:" + sIP;
return false;
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
ConfigLoadedText.Text = e.Message + " IP:" + sIP;
return false;
}
И
string sCommand = @"http://" + sIP + @"/state.xml?relayState=0"; // set the HTTP address to request to enable/disable the relay
if (bRelayState)
{
sCommand = @"http://" + sIP + @"/state.xml?relayState=1";
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sCommand);
request.KeepAlive = false;
//request.ServicePoint.Expect100Continue = true;
//request.ProtocolVersion = System.Net.HttpVersion.Version10; // set protocol version to try remove exception
request.GetResponse();
В настоящий момент это действительно озадачено, и из-за всей ситуации с Коронавирусом невозможно получить какую-либо помощь от людей в офисе, поэтому любая помощь будет принята с благодарностью. Это мой первый пост здесь, так что, если я сделал что-то не так, пожалуйста, не будьте слишком строги sh.