2

こんにちは、サーバーからこのエラーが発生しています。これは、トンネルを使用した外部 IP への TCP ソケット接続です。ソース IP から、宛先サーバー IP、ポートにリクエストを送信します。これは、接続方法について当社に提供された情報です。

  1. お客様のソフトウェアは、お客様のクライアント プラットフォームからソケットを開き、当社のサーバー プラットフォームに接続します。
    1. サーバーは「キープアライブ」ダイアログを開始して応答します。
    2. ソフトウェアは、単一の適格性要求を含む X12 伝送パケットを送信します。
    3. サーバーが受信者の情報を確認し、資格を許可または拒否する応答を送信します

これは、メッセージに接続、送受信するためのクライアント コードです。私は一つのことについて確信が持てません。私がHTTP Postをやっている方法。彼らは私たちにサンプルのリクエストをくれました。こんな感じです

POST /OKMMISPOS HTTP/5.1
Content-Length: 521

ISA*00*__________*00*__________*ZZ*500000330______*ZZ*731476619______*090303*1414*U*004

--------------これはメッセージの X12 コンテンツです---------------------------- ----------

   private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //create a new client socket ...
                string szIPSelected = "127.0.0.1";
                int szPort = 57000;
                if (textBox1.Text != "")
                    szIPSelected = textBox1.Text;
                if (textBox2.Text != "")
                    szPort = Int32.Parse(textBox2.Text);
                m_socClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);


                System.Net.IPAddress remoteIPAddress = System.Net.IPAddress.Parse(szIPSelected);
                System.Net.IPEndPoint remoteEndPoint = new System.Net.IPEndPoint(remoteIPAddress, szPort);
                m_socClient.Connect(remoteEndPoint);
                if (m_socClient.Connected)
                {
                    toolStripStatusLabel1.Text = "Connected to " + szIPSelected + ":" + szPort;
                    statusStrip1.Refresh();
                    SendRequest(m_socClient);
                    toolStripStatusLabel1.Text = "Sending  Request to  " + szIPSelected + ":" + szPort;
                    statusStrip1.Refresh();
                }
                Thread.Sleep(3000);

                byte[] bytes = new byte[1024];
                int bytesRec = m_socClient.Receive(bytes);
                txtResponse271.Text =
                       Encoding.ASCII.GetString(bytes, 0, bytesRec);


            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }

        }
        private void SendRequest(Socket m_socClient)
        {

            string resource = "/OKMMISPOS";
            var header = String.Format("POST {0} HTTP/1.1\r\n", resource);
            String body = Query270;
            byte[] bodyBytes = Encoding.ASCII.GetBytes(body);
            header += "Content-Length: " + (body.Length + 1)+ "\r\n" + "\r\n";
            string request = String.Concat(header,body);
            textBox3.Text = request;
            textBox3.Refresh();
            byte[] requestBytes= Encoding.ASCII.GetBytes(request);
            m_socClient.Send(requestBytes);
        }

私のコードは彼らと同様のリクエストを送信しますが、HTTP 400 の不正なリクエストを受け取ります。Wireshark では、リクエストは TCP プロトコルを使用して開始されます。これは、wireshark のスクリーンショットです。HTTP 400. これが imp かどうかもわかりません。リクエストは TCP で始まり、レスポンスは HTTP リクエストとして返されます。 ここに画像の説明を入力

応答 ここに画像の説明を入力

4

0 に答える 0