こんにちは、サーバーからこのエラーが発生しています。これは、トンネルを使用した外部 IP への TCP ソケット接続です。ソース IP から、宛先サーバー IP、ポートにリクエストを送信します。これは、接続方法について当社に提供された情報です。
- お客様のソフトウェアは、お客様のクライアント プラットフォームからソケットを開き、当社のサーバー プラットフォームに接続します。
- サーバーは「キープアライブ」ダイアログを開始して応答します。
- ソフトウェアは、単一の適格性要求を含む X12 伝送パケットを送信します。
- サーバーが受信者の情報を確認し、資格を許可または拒否する応答を送信します
これは、メッセージに接続、送受信するためのクライアント コードです。私は一つのことについて確信が持てません。私が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 リクエストとして返されます。
応答