gpt4 book ai didi

java - 在JAVA上从浏览器读取GET/POST请求

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:17 25 4
gpt4 key购买 nike

我需要找到一种从 WEB 浏览器(网络)读取 GET/POST 请求的方法,并检索状态、域、大小、IP 和最重要的时间线等信息。

这样做的主要目的是测量网页上每个操作后的请求计数及其执行时间。此外,这将帮助我在我想在网页上执行任何操作之前了解是否有任何请求(AJAX/JavaScript)正在执行。

你能帮我解决一下吗?

最佳答案

假设您不想将自己绑定(bind)到特定浏览器(通过插件或特定开发工具栏),需要捕获交互式用户事件的响应(即通过在真实浏览器中模拟使用网站,而不是动态创建的 HTTP 调用),并且需要自动执行此操作,那么代理服务器就是最佳选择。

类似 Browsermob 的内容可以设置为 proxy for all Selenium 流量。它可以捕获所有请求和响应的全部内容,并让您生成一个(跨浏览器)HAR file,然后您可以通过 API 对其进行持久化、可视化或查询。

显然,您可以自动执行此操作,安排 Selenium 测试运行,或者使用您自己的 Java 代码生成您自己的自定义指标;将 HAR 通过管道传输到支持 JSON 的数据库中以进行查询(例如 Elasticsearch)和可视化,或者仅保存 HAR 以进行离线查询和比较。

来自 tests 的一些示例代码:

[...]
proxy.newHar("Test");

HttpGet get = new HttpGet(getLocalServerHostnameAndPort() + "/a.txt?foo=bar&a=1%262");
client.execute(get);

Har har = proxy.getHar();
HarLog log = har.getLog();

List<HarEntry> entries = log.getEntries();

HarEntry entry = entries.get(0);
HarRequest req = entry.getRequest();
[...]

或者,您可以通过获取字符串形式的 HAR 并将其粘贴到 http://www.softwareishard.com/har/viewer/ 来可视化输出。这应该会为您提供看起来与“网络”选项卡非常相似的内容,但格式更易于导出、屏幕截图和打印。

关于java - 在JAVA上从浏览器读取GET/POST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36091343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com