2010-12-06 46 views
0

Lorsque j'utilise WatiN pour aller à une page Web spécifique, comment puis-je imiter le référent HTTP avec une chaîne de requête (requête provenant de google search avec la chaîne de requête q = search_term)? Je peux donc vérifier que l'en-tête de réponse a la redirection 301 pour l'URL de référent spécifique.Comment simuler une requête http en utilisant WatiN avec un référent HTTP et une chaîne de requête spécifiques?

Je peux avoir besoin d'utiliser FiddlerCore pour agir comme un intermédiaire pour définir le référent personnalisé, mais je ne suis pas sûr de savoir comment le faire pour l'instant. J'utilise ASP.NET avec C#.

Merci!

//WatiN 
Browser.GoTo(url); 

Répondre

1

que je devais faire quelque chose de similaire à ci-dessous:

// session is a custom version of FiddlerCore.Fiddler 
// details about BeforeRequest -> http://fiddler.wikidot.com/fiddlercore-demo 
session.BeforeRequest += sess => 
    sess.oRequest 
     .headers 
     .Add(
      "Referer", 
      "http://www.i-am-middle-man.com/q=black" 
     ); 

session.BeforeResponse += sess => 
     { 
      //sess.oResponse.headers.HTTPResponseCode 
      //sess.oResponse.headers["Host"] 
     }; 

var handler = WatiNHandler(BrowserTypes.IE); 
handler.GoTo("http://www.my-url.com/"); 
0

je pourrais être le manque point de ce que vous essayez de faire, mais je ne pense pas Watin est capable de fakingbthe referrer. WatiN pilote de vrais navigateurs, donc il n'est pas dans le travail de faire semblant. Si vous souhaitez qu'une page ait un référent spécifique, vous devez l'associer à ce référent. Comme vous le suggérez, Fiddler est beaucoup mieux adapté pour ce genre de choses. Si vous le souhaitez, vous pouvez modifier les demandes à la volée en utilisant des règles personnalisées afin que le référent soit ce que vous voulez. Vous n'avez pas besoin d'utiliser Fiddlercore pour cela. Exécuter Fiddler en tant que proxy client ou sur votre serveur en tant que proxy inverse peut suffire.