当前位置:编程学习 > C#/ASP.NET >>

发送HTTP请求的两种方式

答案:写了两个测试了一下,自己看看吧

public void GetResponse()
        {
            StringBuilder strSource = new StringBuilder();
            try
            {
                //WebRequest Wreq = WebRequest.Create("http://www.dev-club.com");
                //WebResponse Wresp = Wreq.GetResponse();

                Uri myUri = new Uri(this.l_strPageAddress);
                HttpWebResponse resp;
                HttpWebRequest req =
                    (HttpWebRequest)WebRequest.Create(myUri);
                resp = (HttpWebResponse)req.GetResponse();


                StreamReader sr = new StreamReader(resp.GetResponseStream(),Encoding.Default);
                string strTemp = "";

                while((strTemp = sr.ReadLine()) != null)
                {
                    strSource.Append(strTemp + "\r\n");
                }

                sr.Close();
            }
            catch(WebException WebExcp)
            {
                strSource.Append(WebExcp.Message);
            }
            this.form.AddMessage(strSource.ToString());
        }

        public void Socket_GetResponse()
        {
            

                IPHostEntry ipinfo    = Dns.Resolve(l_strServerAddress);
                IPAddress ip        = ipinfo.AddressList[0];
                IPEndPoint rip        = new IPEndPoint(ip,80);    

                s = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

                try
                {

                this.form.AddMessage("Connecting to "+ip.ToString());

                s.Connect(rip);

                int bytesRecv = 0;
                string output = "";
                string temp   = "";
                byte[] bytes;

                this.form.AddMessage("Sending request to "+l_strPageAddress);

                string Command = "post " +l_strPageAddress+" HTTP/1.0\r\n";
                Command += "Accept:*/*\r\n";
                Command += "Accept:text/html\r\n";
                Command += "\r\n";

                byte[] msg = Encoding.Default.GetBytes(Command);


                int intSend = s.Send(msg,msg.Length,0);

                this.form.AddMessage("Sent "+intSend.ToString()+" bytes to server");

                do
                {
                    bytes = new byte[1024];
                    bytesRecv = s.Receive(bytes,bytes.Length,SocketFlags.None);
                    temp = Encoding.Default.GetString(bytes,0,bytesRecv);
                    this.form.AddMessage(temp);
                    output += temp;
                }
                while (bytesRecv>0);

                this.form.AddMessage(output);
            }
            catch(Exception e)
            {
                this.form.AddMessage(e.Message);
     &

上一个:运行时修改Web.config中的元素值 zhenyu(原作)
下一个:关于上下文-2 (转自msdn)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,