HttpWebRequest kann manchmal eine Webseite nicht laden.....



  • Hallo,

    Ich habe nachfolgenden HttpWebRequest-Wrapperklasse:

    namespace Gameparser
    {
    	public class WebsiteLoader
    	{
    		private string m_url;
    		private string m_post = string.Empty;
    		public WebsiteLoader(string Url, string postData)
    		{
    			this.m_url = Url;
    			this.m_post = postData;
    		}
    
    		public WebsiteLoader(string Url)
    		{
    			this.m_url = Url;
    		}
    
    		public string GetContent()
    		{
    			//HttpWebRequest webWriter = (HttpWebRequest) WebRequest.Create(this.m_url);
    			HttpWebRequest webWriter = (HttpWebRequest) WebRequest.Create(this.m_url);
    			HttpWebResponse webReader = null;
    			Stream webStream = null;
    			string body = string.Empty;
    			byte[] buffer = new byte[1024];
    			try
    			{
    				webWriter.KeepAlive = true;
    				if(this.m_post != string.Empty)
    				{
    					webWriter.ContentLength = this.m_post.Length;
    					webStream =webWriter.GetRequestStream();
    					webStream.Write(System.Text.Encoding.ASCII.GetBytes(this.m_post), 
    						0, 
    						this.m_post.Length);
    				}
    				webReader = (HttpWebResponse) webWriter.GetResponse();
    				webStream = webReader.GetResponseStream(); //Hier hängts
    				while(webStream.Read(buffer, 0, 1024) != 0)
    				{
    					body += System.Text.ASCIIEncoding.ASCII.GetString(buffer, 0, 1024);
    				}
    				webStream.Close();
    				return body;
    			}
    			catch(Exception err)
    			{
    				throw new Exception(err.Message, err);
    			}
    		}
    	}
    }
    

    Diese funktioniert fast einwandfrei. Ich kann damit sogar Formulardaten versenden. Allerding nicht bei einer Webseite. Ich bin mit meinen Wissen am Ende(wie seltsamer Weise so oft in letzter Zeit...).
    Bei dieser einen Webseite kommt laut Ethereal die Antwort zurück, die ich erwarte, aber die Klasse hier kann diese Antwort einfach nicht auslesen! Die Funktion bleibt nämlich an der Stelle mit dem GetResponseStream() hängen.

    Hat jemand eine Idee woran das liegen könnte?



  • hey...

    hab' deinen eintrag gelesen. viel ahnung hab' ich davon nicht, find' mich da
    selbst erst rein. aber weil du die eine zeile gleich mit kommentiert hast, ist
    mir aufgefallen, ich hab' in allen anderen foren generell folgenden methoden-
    aufruf gefunden:

    stream = reader.GetResponse().GetResponseStream();

    versuch's halt mal. keine ahnung 🙂
    gruß.



  • Ist es immer dieselbe Seite die Du nicht grabben kanst? Dann poste die URL mal.
    Ich denke man muss dann an Mime-Type und Encoding schrauben.
    Mathias


Anmelden zum Antworten