Encoding trouble with HttpWebResponse

后端 未结 7 1653
时光取名叫无心
时光取名叫无心 2020-11-29 07:27

Here is a snippet of the code :

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(request.RawUrl);
WebRequest.DefaultWebProxy = null;//Ensure that         


        
7条回答
  •  粉色の甜心
    2020-11-29 07:56

    This is code that download one time.

    String FinalResult = "";
    HttpWebRequest Request = (HttpWebRequest)System.Net.WebRequest.Create( URL );
    HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
    Stream ResponseStream = Response.GetResponseStream();
    StreamReader Reader = new StreamReader( ResponseStream );
    
    bool NeedEncodingCheck = true;
    
    while( true )
    {
        string NewLine = Reader.ReadLine(); // it may not working for zipped HTML.
        if( NewLine == null )
        {
            break;
        }
    
        FinalResult += NewLine;
        FinalResult += Environment.NewLine;
    
        if( NeedEncodingCheck )
        {
            int Start = NewLine.IndexOf( "charset=" );
            if( Start > 0 )
            {
                Start += "charset=\"".Length;   
                int End = NewLine.IndexOfAny( new[] { ' ', '\"', ';' }, Start );
    
                Reader = new StreamReader( ResponseStream, Encoding.GetEncoding(
                    NewLine.Substring( Start, End - Start ) ) ); // Replace Reader with new encoding.
    
                NeedEncodingCheck = false;
            }
        }
    }
    
    Reader.Close();
    Response.Close();
    

提交回复
热议问题