从 Java 中的 GET POST 请求方法捕获 URI、资源名称,如开发人员工具中所见

Capture the URI, resource name,as seen in Developer Tools, from GET POST request method in Java

我这样做是为了增强 Selenium Webdriver 脚本。 我已经尝试将 httpclient 与 Java 和许多其他东西一起使用,但我无法到达任何地方。 请帮忙!

场景是这样的:

在网页中执行特定操作(如单击按钮)后, GET/POST 方法可以在 Chrome 的开发者工具中看到。

这里以Google为例

我这里需要的是收集所有的资源名称,直到某个资源出现(如果你在 Chrome 中打开开发者工具并导航到 google.com ,在最左边的 Network 选项卡下列你会看到 tia.png ,只是一个例子)。

有两件事应该实现:

  1. 确保已加载特定资源

  2. 确保页面已完全加载(所有 GET / POST 方法均已传输),然后再执行任何其他操作。

httpclient、httpurlconnection只捕获一个请求,但是一个页面发送了很多请求。我们如何捕获所有这些?

通过使用 http apache 客户端,您可以使用如下内容:- 要解决您的问题,您可以获得响应代码 "response.getStatusLine().getStatusCode()" 并检查预期的响应代码,还可以使用响应的结果。

URI url = new URI("String URI");
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
HttpResponse response = HttpClientBuilder.create().build().execute(post);
        System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}
System.out.println("Ressponse 1 >>>>"+result.toString());

并且,如果您需要在 post 请求中发送参数,例如:-

List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("username", "yourusername"));
urlParameters.add(new BasicNameValuePair("password", "yourPassword"));
post.setEntity(new UrlEncodedFormEntity(urlParameters));

这是我的问题的答案:

https://kenneth.io/blog/2014/12/28/taking-chrome-devtools-outside-the-browser/ https://github.com/auchenberg/chrome-devtools-app

来自博客:

It’s a standalone app that runs Chrome DevTools in its own process. It’s powered by node-webkit, and it’s able to run on Windows, Mac and Linux, completely independently of Chrome.

我想捕获应用程序和服务器之间的所有请求(如屏幕截图所示),以便我可以确保所有关键资源、请求已来回传输并且页面已完全加载。 我无法做到这一点,以编程方式执行我们在此处图片中“网络”选项卡下的 Chrome 开发工具中看到的内容。

Kenneth 的作品让我们在一定程度上实现了这一目标。