Привет, пытаемся зафиксировать фактические данные POST в запросе HTTP POST с использованием прокси-сервера browsermob + тестовой среды selenium. Итак, в основном я запускаю автоматический тест с использованием селена, и я хочу захватить пары ключ/значение и фактические данные POST запроса HTTP POST во время теста. Используя следующую логику, я могу захватить только пары ключ/значение заголовка POST, но не фактические данные POST (, также известные как значения идентификатора поля формы ). Есть ли способ фактически захватить POSTDATA (, как это делают приложения для прослушивания, например, заголовки tamper/live в firefox )?
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());
}
}
});
Альтернативный способ, о котором я читал, но не смог приступить к работе, заключался в том, чтобы настроить следующие флаги на прокси-сервере browsermob на true:
proxyServer.setCaptureContent(true);
proxyServer.setCaptureHeaders(true);
Затем выведите фактический файл HAR:
Har har = proxyServer.getHar();
Date date = new Date();
har.writeTo(new File("c:\\tmp\\har_" + date.getTime()));
Чтобы увидеть пары ключ/значение, данные POST и фактическое содержимое ответа... но когда я анализирую файл HAR... я снова вижу только пары ключ/значение заголовка POST... без данных POST... нет содержания ответа. Меня интересуют только фактические данные POST.