2009-05-21 7 views
1

J'utilise le HttpWebRequest pour passer une URL et ensuite besoin de sauvegarder le HTML retourné par le HttpWebResponse. La réponse renvoyée a beaucoup de \ r, \ n et \ t et aussi tous les "=" (égaux à) sont ajoutés avec un antislash. J'ai besoin de les enlever pour que le tml retourné soit propre et directement utilisable.Comment faire pour supprimer r n t et extra added pour "=" de la HttpWebResponse

Code utilisé est:

HttpWebRequest request = WebRequest.Create("http://noirimdev02:8080/cps/rde/xchg/rimvenezuela/hs.xsl/1351.htm?xsl=pearl_series_landingpage.xsl&catid=0651C91110FA48BEBFD7C05413185395&pid=F6794FC1CB244538BB592A47505062BC&count=2") as HttpWebRequest; 
    // Get response    
    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
    { 
     // Get the response stream 

     StreamReader reader = new StreamReader(response.GetResponseStream()); 

     // Read the whole contents and return as a string 
     result = reader.ReadToEnd(); 
    } 
    result = result.Replace("\n", " "); 
    result = result.Replace("\r", " "); 
    result = result.Replace("\t", " "); 
    Console.WriteLine(result); 
    Console.ReadLine(); 

Nimish

+0

désolé, mais je n'ai pas la question dans ce qui ne fonctionne pas dans votre exemple? – BerggreenDK

+0

Je ne peux pas reproduire le comportement que vous décrivez en utilisant des requêtes à des URL différentes. Êtes-vous sûr que le "problème" ne figure pas dans la chaîne HTML d'origine envoyée par le serveur Web? – AlexDrenea

Répondre

1

Il semble que si vous avez déjà manipulé les cas \ n, \ r et \ t, en laissant la fuite '\' après le signe égal à gauche pour résoudre , Si je comprends bien? Vous pouvez le faire en utilisant la même approche que les autres:

result = result.Replace(@"=\", "="); 

Ou, si vous voulez traiter tous les cas en même temps:

result = Regex.Replace(result, "[\n\r\t]|=\\\\", delegate(Match match) 
{ 
    return match.Value == @"=\" ? "=" : " "; 
}); 
Questions connexes