【发布时间】:2011-03-21 11:59:36
【问题描述】:
在使用 Fiddler 向网站发出请求之前,我需要设置一个 cookie。我该怎么做?
【问题讨论】:
在使用 Fiddler 向网站发出请求之前,我需要设置一个 cookie。我该怎么做?
【问题讨论】:
简单...您需要根据您的请求设置标头值,如下所示:
Cookie: YourCookieName=YourCookieValue
【讨论】:
Cookie: CookieName1=CookieVal1; CookieName2=CookieVal2,对于路径/协议详细信息,请使用 Cookie: CookieName1=CookieVal1; CookieName2=CookieVal2; path=/; HttpOnly
要使用FiddlerScript engine 执行此操作,请将以下代码添加到onBeforeRequest 方法中:
oSession.oRequest["Cookie"] = (oSession.oRequest["Cookie"] + ";YourCookieName=YourCookieValue");
这将保留已设置的任何其他 cookie。
【讨论】:
oSession.oRequest['Cookie'] = oSession.oRequest['Cookie'] ? oSession.oRequest['Cookie'].Replace("YourCookieName=","ignoredYourCookieName=") + ";YourCookieName=YourCookieValue" : "YourCookieName=YourCookieValue";
您需要更具体地说明您想要做什么。
您可以编辑(或添加)出站 Cookie 标头以将 Cookie 发送到网站。您可以手动或通过FiddlerScript engine 执行此操作。但这并没有在客户端上“设置”cookie——它只是将它发送到服务器。如果你想在客户端设置一个cookie,你要么必须使用另一种方式,要么你可以在来自服务器的先前响应中注入一个Set-Cookie响应头,其中包含你要在客户端上设置的值。
【讨论】:
您也可以使用 Fiddler Composer。
如果您可以从您的网站的另一个请求开始,这是最简单的。为此,请捕获您要修改的请求,然后将其从 UI 拖到 composer 选项卡。
这里有一个很好的解释:http://www.debugtheweb.com/Fiddler/help/composer.asp
【讨论】:
Fiddler 允许您重新发送/重建现有请求。有一个Request Builder。在以 RAW 形式重建时,修改您的 cookie。
【讨论】:
此方案适用于基于 Cookie 的身份验证:
如果您想测试启用了身份验证的 API/url,请尝试以下操作,我在 IIS 服务器上显示 MVC Web API。通常有不止 1 个 cookie 负责授权,因此您可能需要在 header 中发送超过 1 个 cookie,如下所示:
User-Agent: Fiddler Host: localhost:51000 content-Type: application/json Cookie : .ASPXAUTH=xxxxx;ASP.NET_SessionId=yyyy;__RequestVerificationToken=zzzz
【讨论】:
运行Fiddler as a reverse Proxy时可以修改响应头 通过 FiddlerScript 在 OnBeforeResponse 方法中添加一行:
static function OnBeforeResponse(oSession: Session) {
// ...
oSession.oResponse["Set-Cookie"] = "sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT";
}
还可以查看有关 Modifying a Request or Response 的 Fiddler 文档以获取更多信息。
【讨论】: