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.
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
Ten komentarz powinien naprawdę być odpowiedzią. Ale dziękuję za komentarz! –