2011-10-31 10 views
7

Esempio: Voglio creare uno regola AutoResponse che mappare tutte le chiamate a un host ad un altro host, ma preservare gli URL. EsempiFiddler: Creazione di una regola AutoResponse per mappare tutte le chiamate verso un host ad un altro host

http://hostname1/foo.html ->http://hostname2/foo.html

e

http://hostname1/js/script.js ->http://hostname2/js/script.js

in una regola. Per ora, ho raggiunto questo risultato creando una regola AutoResponse per ogni URL che il mio progetto chiama, ma sono sicuro che ci deve essere un modo per raddrizzare una regola usando i caratteri jolly giusti. Ho guardato allo http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp, ma non ho potuto vedere come farlo. Le jolly sembrano essere tutte intorno alla corrispondenza e non all'azione.

contesto completa: sto sviluppando su una piattaforma beta e Visual Studio è borked in tale via che si sta inviando tutte le richieste di http://localhost:24575 quando il mio progetto è effettivamente in esecuzione sul http://localhost:56832

risposta

3

Per mappare da una ospitare un altro, non utilizzare AutoResponder. Invece, fare clic su Strumenti> Host.

In alternativa, è possibile fare clic su Regole> Personalizzazione delle regole, scorrere fino a OnBeforeRequest e scrivere un po 'di codice:

if (oSession.HostnameIs("localhost") && (oSession.port == 24575)) oSession.port = 56832; 
2

richieste di mappatura con Fiddler Autoresponder utilizzando le espressioni regolari è possibile. Questo può essere fatto con le regole di rexexp. Tuttavia questo non sembra essere documentato da nessuna parte.

Se si aggiunge una regola e utilizzare espressioni regolari all'interno di parentesi, queste partite possono essere utilizzati nella mappatura desiderata quando si utilizzano i segnaposti ... $ n

ogni numero corrisponde alla regexp abbinato nella regola.

Example of Rule: regex:http://server1/(\w*) -> http://server2/ 

This will result in the following mapping: http://server1/foo.html -> http://server2/foo.html 
+1

Le espressioni regolari sono documentate nel libro Fiddler, nella pagina della Guida collegata alla scheda Risposta automatica e sul mio blog: http://blogs.msdn.com/b/fiddler/archive/2012/01/09 /fiddler-2.3.8.2-beta-views-woff-mp3-h264-datauris-and-autoresponder-supports-regular-expression-groups.aspx – EricLaw

+0

Roba buona. Ho google disperatamente senza successo. Questa è una caratteristica importante in effetti. Fantastico blog su Fiddler! – dustEffect

13

Ecco come ho configurato Fiddler2:

I want to redirect all requests from http://server-name/vendor-portal-html/ to http://localhost/vendor-portal-html/ 

La mia configurazione è la seguente:

REGEX:.*/vendor-portal-html/(.*) to http://127.0.0.1/vendor-portal-html/$1 

enter image description here

Grazie a EricLaw per un commento sopra.

3

Perché questo era il modo più difficile da trovare di quanto avrebbe dovuto essere di utilizzare Fiddler per reindirizzare tutte le richieste per uno a host ad un altro host:

Utilizzare la scheda autoresponder per impostare una regola in modo tale che qualsiasi corrispondenza richiesta il tuo vecchio host reindirizzerà al tuo nuovo host con il percorso e la stringa di query aggiunti.

Corrispondenza con le opzioni regex ix per renderlo case-insensitive e ignorare gli spazi.Lasciare l'opzione n come it requires explicitly named capture groups.

Acquisire il percorso e la stringa di query della richiesta e aggiungerla alla risposta di reindirizzamento utilizzando la variabile $1, dove il percorso + query è il primo gruppo di acquisizione. Puoi utilizzare i gruppi di cattura $1 - $n se la tua espressione regolare ha di più.

Fiddler invierà quindi una risposta di reindirizzamento HTTP 307.

Richiesta: regex:^(?ix)http://old.host.com/(.*)$ #Match HTTP host

Risposta: *redir:http://new.host.com/$1

Redirect old host to new host

Richiesta

GET http://old.host.com/path/to/file.html HTTP/1.1 
Host: old.host.com 
Accept: */* 
Accept-Encoding: gzip, deflate 
Connection: keep-alive 

risposta

HTTP/1.1 307 AutoRedir 
Content-Length: 0 
Location: http://new.host.com/path/to/file.html 
Cache-Control: max-age=0, must-revalidate 
+0

domanda laterale c'è un modo per definire il tipo di richiesta (diciamo solo le richieste POST) –

Problemi correlati