2010-07-27 13 views

Respuesta

62

simple ... Es necesario establecer un valor de cabecera, con su solicitud, así:

Cookie: YourCookieName=YourCookieValue 
+2

This no configura la cookie de manera que el cliente sepa que la cookie está allí. La línea especificada también "ocultará" efectivamente todas las demás cookies. – EricLaw

+6

Acabo de tropezar con esto ahora ya que esta pregunta es alta en Google. Para cookies múltiples use 'Cookie: CookieName1 = CookieVal1; CookieName2 = CookieVal2' y para detalles de ruta/protocolo use 'Cookie: CookieName1 = CookieVal1; CookieName2 = CookieVal2; ruta = /; HttpOnly' – EvilDr

2

Fiddler le permite reenviar/reconstruir una solicitud existente. Hay un Request Builder. Mientras reconstruye en formato RAW, modifique sus cookies.

+2

Eso está bien para las solicitudes existentes, pero esta es una nueva solicitud que requiere una cookie. –

7

Debe ser más específico sobre lo que está tratando de hacer.

Puede editar (o agregar) un encabezado de Cookie de salida para enviar una cookie al sitio web. Puede hacerlo manualmente o a través del FiddlerScript engine. Pero eso no "establece" la cookie en el cliente, simplemente la envía al servidor. Si desea establecer una cookie en el cliente, debe utilizar otro medio, o puede insertar un encabezado de respuesta Set-Cookie en una respuesta anterior del servidor, con el valor que desea establecer en el cliente.

+0

Gracias Eric, configurar el encabezado de la cookie de salida es precisamente lo que quiero hacer. (BTW Fiddler es una herramienta excelente, estoy trabajando en un equipo de aproximadamente 250 desarrolladores, cada uno de los cuales lo usa casi todos los días. Nos parece justo el boleto para diagnosticar problemas de bajo nivel con los servicios REST.) –

16

Para hacer esto utilizando la FiddlerScript engine, agregue el código siguiente en el método onBeforeRequest:

oSession.oRequest["Cookie"] = (oSession.oRequest["Cookie"] + ";YourCookieName=YourCookieValue"); 

Esto conservará cualquier otra cookie que se haya establecido.

+0

Utilizo este "one-liner" para "reemplazar" el valor de una cookie y establecer el valor de la cookie. También maneja el caso donde el encabezado Cookie no era parte de la solicitud inicial. 'oSession.oRequest ['Cookie'] = oSession.oRequest ['Cookie']? oSession.oRequest ['Cookie']. Replace ("YourCookieName =", "ignoredYourCookieName =") + "; YourCookieName = YourCookieValue": "YourCookieName = YourCookieValue"; ' –

5

También puede usar el Fiddler Composer.

  1. Run violinista
  2. Abra el Compositor pestaña en la parte superior.

Es más fácil si puede comenzar con otra solicitud de su sitio web. Para ello, capture la solicitud que desea modificar y luego arrástrela desde la interfaz de usuario a la pestaña del compositor.

Una buena explicación está aquí: http://www.debugtheweb.com/Fiddler/help/composer.asp

1

Esta solución es válida para la autenticación basada Cookie:

Si desea probar la API/url que tienen habilitada la autenticación, por favor, intente seguir, yo estoy mostrando de API web de MVC en el servidor IIS. por lo general hay más de 1 galletas responsable de la autorización, por lo que puede que tenga que enviar más de 1 galleta en la cabecera de la siguiente manera:

User-Agent: Fiddler Host: localhost:51000 content-Type: application/json Cookie : .ASPXAUTH=xxxxx;ASP.NET_SessionId=yyyy;__RequestVerificationToken=zzzz 
0

Cuando se ejecuta Fiddler as a reverse Proxy se pueden modificar las cabeceras de respuesta través FiddlerScript mediante la adición de una línea en el método OnBeforeResponse:

static function OnBeforeResponse(oSession: Session) { 
    // ... 
    oSession.oResponse["Set-Cookie"] = "sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT"; 
} 

comprobación también documentos sobre Fiddler Modifying a Request or Response para obtener más información.

Cuestiones relacionadas