public void WriteData() {
            string lineData = null;
            byte[] bytes = new byte[1024];
            int count = 0;
            /*System.Net.WebClient webClient = new System.Net.WebClient();            Stream stream = webClient.OpenWrite("http://127.0.0.1:8000");            StreamWriter writer = new StreamWriter(stream);
            writer.WriteLine("Hello world!");
            writer.Close();*/
            WebRequest webRequest = WebRequest.Create("http://127.0.0.1:8000");
             HttpWebRequest httpWebRequest = (HttpWebRequest)webRequest;
            WebResponse webResponse = (WebResponse)webRequest.GetResponse();
            Stream ReaderStream = webResponse.GetResponseStream();
            StreamReader reader = new StreamReader(ReaderStream);
           do{
                count = ReaderStream.Read(bytes, 0, bytes.Length);
                Console.WriteLine("count1 is:" + count);
            }while(count>0)            Console.WriteLine("count2 is:" + count);            webRequest.Credentials = CredentialCache.DefaultCredentials;            NetworkCredential networkCredential = new NetworkCredential("myusername","mayuserpass");
            webRequest.Credentials = networkCredential;
            Console.WriteLine("request url " + webRequest.RequestUri);
            Console.WriteLine("name:"+networkCredential.UserName+" pass:"+networkCredential.Password);
            Console.ReadKey();
            while(reader.ReadLine() != null){
                Console.WriteLine("reader data:"+reader.ReadLine());
                Console.ReadKey();
            }            Console.WriteLine("timeout " + httpWebRequest.Timeout + " AllowAutoRedirect " + httpWebRequest.AllowAutoRedirect);
            
            Console.ReadKey();
            WebHeaderCollection connection = webResponse.Headers;
            for (int i = 0; i < connection.Count; i++ )
            {
                Console.WriteLine("header data "+connection[i].ToString());
                Console.ReadKey();
            }
        }为什么读到最后count为中,在do中刚开始count不是0,最后count为0,读到最后什么也没有了,这是什么原因。初学者,请大家帮帮忙,谢谢

解决方案 »

  1.   

            public static string GetResponseText(string url)
            {
                string responseFromServer = null;
                Stream dataStream = null;
                StreamReader reader = null;
                try
                {
                    WebRequest request = WebRequest.Create(url);
                    request.Credentials = CredentialCache.DefaultCredentials;
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    if (response.StatusDescription == "OK")
                    {
                        try
                        {
                            dataStream = response.GetResponseStream();
                            reader = new StreamReader(dataStream, Encoding.GetEncoding("GB2312"));
                            responseFromServer = reader.ReadToEnd();
                        }
                        finally
                        {
                            reader.Close();
                            dataStream.Close();
                        }
                    }
                    response.Close();
                    return responseFromServer;
                }
                catch (Exception ex) 
                {
                    return null;
                }
            }