The .NET Class Library dox for HttpWebRequest.GetResponse() show using the StreamReader.ReadToEnd() method to read the entire response into a string:
replace your do-while loop (and the StringBuilder object) with: TextBox1.Text = sr.ReadToEnd (); Also, I didn't see anything suggesting that GetResponse or StreamReader.Read were synchronous, unless I've misunderstood you. http://www.peterRitchie.com/ On Mon, 10 Oct 2005 17:38:51 -0400, Ice Shock <[EMAIL PROTECTED]> wrote: >in the code below I am trying to get the response from a GET request to a >normal URL (or URI) but what happens is that I can only get a part of it >unless I make the current thread sleep for a certain while (in the commented >part). It seems that the Synchronous method is not synchronous since it >returned before the response is ready!!?? > > >//-----------CODE------------------ > > > >using System; >using System.Collections; >using System.ComponentModel; >using System.Data; >using System.Drawing; >using System.Web; >using System.Web.SessionState; >using System.Web.UI; >using System.Web.UI.WebControls; >using System.Web.UI.HtmlControls; >using System.Net; >using System.IO; >using System.Text; > >namespace TestingWebServices >{ > /// <summary> > /// Summary description for WebForm1. > /// </summary> > public class WebForm1 : System.Web.UI.Page > { > protected System.Web.UI.WebControls.TextBox TextBox1; > > private void Page_Load(object sender, System.EventArgs e) > { > > HttpWebRequest req = (HttpWebRequest) >WebRequest.Create("http://www.msn.com"); > req.ContentType = ""; > req.Method = "GET"; > Stream s; > req.Timeout = 100000; > HttpWebResponse res = (HttpWebResponse)req.GetResponse(); > //System.Threading.Thread.Sleep(30000); > s = res.GetResponseStream(); > > StreamReader sr = new StreamReader(s, System.Text.Encoding.ASCII); > StringBuilder sb = new StringBuilder(); > char [] data = new char[1048576]; > int nBytes; > do > { > nBytes = sr.Read(data, 0, (int) 1048576); > sb.Append(data); > } > while(nBytes == 1048576); > TextBox1.Text = sb.ToString(); > > } > > #region Web Form Designer generated code > override protected void OnInit(EventArgs e) > { > // > // CODEGEN: This call is required by the ASP.NET Web Form Designer. > // > InitializeComponent(); > base.OnInit(e); > } > > /// <summary> > /// Required method for Designer support - do not modify > /// the contents of this method with the code editor. > /// </summary> > private void InitializeComponent() > { > this.Load += new System.EventHandler(this.Page_Load); > > } > #endregion > } >} =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
