单步跟踪可以接收数据,直接运行就不行
Socket 发送Http Post请求WebService,返回数据,代码如下:
string strData = "strAssetCode=10221457";
Socket httpSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
httpSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.39.97"),8090));
string sendStr = "POST /TestService/TestService.asmx/GetAsset HTTP/1.1\r\n";
sendStr = sendStr + "Host: 192.168.39.97\r\n";
sendStr = sendStr + "Content-Type: application/x-www-form-urlencoded\r\n";
sendStr = sendStr + "Content-Length: " + strData.Length + "\r\n\r\n";
sendStr = sendStr + strData;
byte[] sendBuff = Encoding.UTF8.GetBytes(sendStr);
httpSocket.Send(sendBuff);
byte[] recvBuff = new byte[1024 * 10];
int iRet = httpSocket.Receive(recvBuff);//单步跟踪这里就可以正确接收数据
string recvStr = Encoding.UTF8.GetString(recvBuff,0,iRet);
StreamWriter mWriter = new StreamWriter(Application.StartupPath + "\\Debug.txt");
//mWriter.WriteLine(sendStr);
mWriter.WriteLine(iRet);
mWriter.WriteLine(recvStr);
mWriter.Close();
httpSocket.Shutdown(SocketShutdown.Both);
httpSocket.Close();