从 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 ,只是一个例子)。
有两件事应该实现:
确保已加载特定资源
确保页面已完全加载(所有 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 的作品让我们在一定程度上实现了这一目标。
我这样做是为了增强 Selenium Webdriver 脚本。 我已经尝试将 httpclient 与 Java 和许多其他东西一起使用,但我无法到达任何地方。 请帮忙!
场景是这样的:
在网页中执行特定操作(如单击按钮)后, GET/POST 方法可以在 Chrome 的开发者工具中看到。
这里以Google为例
我这里需要的是收集所有的资源名称,直到某个资源出现(如果你在 Chrome 中打开开发者工具并导航到 google.com ,在最左边的 Network 选项卡下列你会看到 tia.png ,只是一个例子)。
有两件事应该实现:
确保已加载特定资源
确保页面已完全加载(所有 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.
Kenneth 的作品让我们在一定程度上实现了这一目标。