如何使用特定HTTP引用和查询字符串的WatiN模拟http请求?

时间:2010-12-06 00:55:28

标签: c# asp.net http-headers watin fiddler

当我使用 WatiN 转到特定网页时,如何使用查询字符串伪造HTTP引荐来源(即请求来自带有查询字符串的Google搜索q = SEARCH_TERM)?因此,我可以验证响应标头是否具有针对特定引荐来源网址的301重定向。

我可能需要使用FiddlerCore像中间人一样设置自定义引荐来源,但我不知道该如何做到这一点。

我正在使用带有C#的ASP.NET。

谢谢!

//WatiN
Browser.GoTo(url);

2 个答案:

答案 0 :(得分:1)

我需要做类似下面的事情:

// 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/");

答案 1 :(得分:0)

我可能会忽略你想要做的事情,但我不认为WatiN有能力伪造推荐人。

WatiN驱动真正的浏览器,所以它不是伪造东西的工作。如果您希望页面具有特定的引荐来源,那么您需要从该引用者链接它。

正如你的建议,Fiddler更适合这类事情。如果您愿意,可以使用自定义规则动态修改请求,以便引用者可以随意使用。你不需要使用Fiddlercore。将Fiddler作为客户端代理运行,或者作为反向代理运行在您的服务器上可能就足够了。