0

私はC#初心者です。私は主にCでコーディングしました。誰かが洞察やコードスニペットを教えてくれることを願っています。

問題: データの読み込みと取得のために LRU (回線交換可能ユニット) と通信する C# で記述された GUI ソフトウェアがあります。現在、HTTP POST コマンドを使用してデータをラップトップ サーバーに転送する LRU サーバーがあります。ラップトップは現在、その LRU POST データを受け入れ、Web ページに表示します。ラップトップは、LRU 値を設定および取得するために、LRU に対して POST および GET コマンドも使用します。当社のソフトウェアで構成された別のラップトップを使用して、同じタスクを実行したいと考えています。私たちのラップトップは、GUI ウィンドウにデータを表示し、Web ブラウザー インターフェイスを使用しません。

  1. ラップトップが次の定期的な HTTP POST データ コマンドを LRU から受信する方法を示す C# コード例はありますか? POST /mipg3/servlet/xmlToMySql HTTP/1.0 ?

  2. ラップトップ サーバーが次の HTTP GET データ コマンドを LRU に送信する方法を示す C# コード例はありますか? GET /setFreq.shtml HTTP/1.1 および POST された LRU 応答を受信します。 ?

以下は、LRU と最初のラップトップの間のサンプル通信の Wireshark ネットワーク分析からのスニペットです (LRU で Web インターフェイスを使用)。

192.168.211.1          192.168.211.143     HTTP     POST /mipg3/servlet/XmlToMySql Http/1.0

192.168.211.143      192.168.211.1         HTTP     HTTP/1.0  200 OK

192.168.211.1        192.168.211.143       HTTP     POST /mipg3/servlet/XmlToMySql Http/1.0

192.168.211.143      192.168.211.1         HTTP     HTTP/1.0  200 OK

192.168.211.143      192.168.211.1         HTTP     GET /setFreq.shtml  HTTP/1.1

192.168.211.1          192.168.211.143     HTTP     POST /mipg3/servlet/XmlToMySql  HTTP/1.0

GetResponseStream() を使用した WebResponse クラスが、これらの着信 LRU POST を読み取るために使用する必要があるかどうかはわかりません。また、LRU POST を取得するために GetRequestStream() を使用する WebRequest クラスを使用する必要があるかどうかもわかりません。

共有できるご支援をいただき、誠にありがとうございます。

-ケント

ps

以下は、LRU サーバーに POST して応答を受信するために使用できるコードです。着信 POST を受信して​​ GET を送信するための実装方法がわかりません。

// Test code:   HTTP POST w/return response string

using System.Net;
...
string HttpPost (string uri, string parameters)
{ 
   // parameters: name1=value1&name2=value2 
   WebRequest webRequest = WebRequest.Create (uri);
   //string ProxyString = 
   //   System.Configuration.ConfigurationManager.AppSettings
   //   [GetConfigKey("proxy")];
   //webRequest.Proxy = new WebProxy (ProxyString, true);
   //Commenting out above required change to App.Config
   webRequest.ContentType = "application/x-www-form-urlencoded";
   webRequest.Method = "POST";
   byte[] bytes = Encoding.ASCII.GetBytes (parameters);
   Stream os = null;
   try
   { // send the Post
      webRequest.ContentLength = bytes.Length;   //Count bytes to send
      os = webRequest.GetRequestStream();
      os.Write (bytes, 0, bytes.Length);         //Send it
   }
   catch (WebException ex)
   {
      MessageBox.Show ( ex.Message, "HttpPost: Request error", 
         MessageBoxButtons.OK, MessageBoxIcon.Error );
   }
   finally
   {
      if (os != null)
      {
         os.Close();
      }
   }

   try
   { // get the response
      WebResponse webResponse = webRequest.GetResponse();
      if (webResponse == null) 
         { return null; }
      StreamReader sr = new StreamReader (webResponse.GetResponseStream());
      return sr.ReadToEnd ().Trim ();
   }
   catch (WebException ex)
   {
      MessageBox.Show ( ex.Message, "HttpPost: Response error", 
         MessageBoxButtons.OK, MessageBoxIcon.Error );
   }
   return null;
} // end HttpPost 
4

0 に答える 0