2012-08-15 23 views
6

Witaj próbuję uchwycić rzeczywiste dane POST w żądaniu HTTP POST za pomocą proxy przeglądarki + szkielet testowy selenu. Zasadniczo uruchamiam automatyczny test przy użyciu selenu i chcę przechwycić pary klucza/wartości oraz rzeczywiste dane POST żądania HTTP POST podczas testu. Korzystając z poniższej logiki, mogę przechwytywać pary klucz/wartość nagłówka POST, ale nie rzeczywiste dane POST (inaczej wartości identyfikatora pola formularza). Czy istnieje sposób na przechwytywanie POSTDATA (np. Aplikacje do podsłuchiwania, takie jak sabotażowe/live nagłówki w firefoxie)?Sposób przechwytywania żądań HTTP POST z proxy przeglądarki i selenu

ProxyServer proxyServer = null; 
proxyServer = new ProxyServer(9101); 
proxyServer.start(); 

proxyServer.setCaptureContent(true); 
proxyServer.setCaptureHeaders(true); 

Proxy proxy = proxyServer.seleniumProxy(); 
proxy.setHttpProxy("localhost:9101"); 

//selenium test config code, omitted for brevity 

proxyServer.addRequestInterceptor(new HttpRequestInterceptor() { 
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException { 
    Header[] headers = request.getAllHeaders(); 
    System.out.println("\nRequest Headers\n\n"); 
     for(Header h : headers) { 
      System.out.println("Key: " + h.getName() + " | Value: " + h.getValue()); 
     } 

    } 
}); 

Alternatywnym sposobem czytałem o, ale nie mógł dostać się do pracy było skonfigurować następujące flagi w serwerze browsermob proxy true:

proxyServer.setCaptureContent(true); 
proxyServer.setCaptureHeaders(true); 

Następnie wyjście rzeczywisty plik HAR:

Har har = proxyServer.getHar(); 
Date date = new Date(); 
har.writeTo(new File("c:\\tmp\\har_" + date.getTime())); 

Aby zobaczyć pary klucz/wartość, dane POST i rzeczywista treść odpowiedzi ... ale kiedy parsuję plik HAR ... Widzę tylko pary klucz/wartość w nagłówku POST ... brak danych POST ... brak odpowiedzi se treści. Interesują mnie tylko rzeczywiste dane POST.

+4

Nieważne, wymyśliłem to w końcu po sprawdzeniu projektu proxy przeglądarki w moim obszarze roboczym. proxyServer.setCaptureContent (true) i proxyServer.setCaptureHeaders (true) powinny działać w celu przechwytywania parametrów POST tylko wewnątrz obiektu HAR. Obiekt proxyServer.addRequestInterceptor NIE BĘDZIE przechwytywać parametrów POST. – Selwyn

+0

Ten komentarz powinien naprawdę być odpowiedzią. Ale dziękuję za komentarz! –

Odpowiedz

0

Też miałem ten sam problem. Jako rozwiązanie przechwyciłem wszystkie dane, przekonwertowałem plik HAR na JSON, a następnie odfiltrowałem tylko żądania POST z pliku JSON.

Powiązane problemy