2010-12-06 2 views
0

Wenn ich WatiN zu einer bestimmten Webseite gehen, wie kann ich den HTTP-Referrer mit einer Abfragezeichenfolge fälschen (d. H. Anfrage ist von Google-Suche mit Abfragezeichenfolge q = search_term)? So kann ich überprüfen, dass der Antwortheader die 301-Weiterleitung für die spezifische Referrer-URL hat.Wie simulieren Sie HTTP-Anfragen mit WatiN mit spezifischem HTTP-Referrer und Query String?

Ich muss FiddlerCore verwenden, um wie ein mittlerer Mann zu fungieren, um den kundenspezifischen Referrer einzustellen, aber ich bin nicht sicher, wie man das gerade noch tut.

Ich benutze ASP.NET mit C#.

Danke!

//WatiN 
Browser.GoTo(url); 

Antwort

1

Ich brauchte etwas ähnliches wie unten zu tun:

// 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

Ich könnte den Punkt fehlt, was Sie zu tun versuchen, aber ich glaube nicht, WatiN von fakingbthe Referrer fähig ist.

WatiN treibt echte Browser an, also ist es nicht in der Aufgabe, Dinge zu fälschen. Wenn Sie möchten, dass eine Seite einen bestimmten Referrer enthält, müssen Sie diesen Link von diesem Referrer aus verlinken.

Wie Sie vorschlagen, ist Fiddler viel besser für diese Art von Sache geeignet. Wenn Sie möchten, können Sie Anforderungen unter Verwendung benutzerdefinierter Regeln ändern, sodass der Referrer wie gewünscht aussieht. Sie müssen dafür keinen Fiddlercore verwenden. Das Ausführen von Fiddler als Client-Proxy oder auf Ihrem Server als Reverse-Proxy reicht möglicherweise aus.