Reputation: 363
Please help to get the response body(as json) for an intercepted request using Devtools Network. Below is the code I could attempt. Thanks!
devTools.addListener(Network.requestWillBeSent(),
entry -> {
Request req;
RequestId rid=entry.getRequestId();
if (entry.getRequest().getUrl().contains("tender")) {
req=entry.getRequest();
}
try {
br.write("Request URI : " + entry.getRequest().getUrl()+"\n With method : "+entry.getRequest().getMethod() + "\n");
} catch (IOException e) {e.printStackTrace();}
Command <ResponseBody> resBody=Network.getResponseBody(rid);
});
Upvotes: 2
Views: 6305
Reputation: 11
Obviously you're just creating the Command-Object, but not executing and retrieving result.
Try this:
Command<GetResponseBodyResponse> getBody = Network.getResponseBody(responseReceived.getRequestId());
GetResponseBodyResponse response = driver.getDevTools().send(getBody);
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode n = objectMapper.readValue(response.getBody(), JsonNode.class);
debug("Response from Command: " + n.toPrettyString());
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (JsonProcessingException e) {
e.printStackTrace();
}
To get this Response Data I registered ResponseReceived
-Event using Network.responseReceived()
with your DevTools-Instance.
Upvotes: 1