ref*_*rmy 16 google-chrome google-chrome-devtools
我需要从Chrome获取网络事件.我发现了这个:https : //developer.chrome.com/devtools/docs/debugger-protocol https://developer.chrome.com/devtools/docs/protocol/1.1/network#command-enable
Chrome似乎使用端口来获取消息,应答和发送事件,以进行远程调试.它说它使用JSON,所以我决定尝试一下.
所以,我写了一些简单的java代码,打开了chrome正在监听的端口(当然,我已经通过google-chrome --remote-debugging-port=9222在我的ubuntu机器上使用它启动了它).我有一个线程写入stdout来自此端口的任何内容,然后代码使用此行将此写入套接字的输出流(协议中的示例方法):
out.println("{\"id\": 1,\"method\": \"Network.enable\"}");
Run Code Online (Sandbox Code Playgroud)
我希望输入流中有一些答案(根据协议),但没有任何反应.
有没有人做过这样的事情?我在网上找不到任何东西.
ref*_*rmy 17
终于我明白了.积分转到https://www.igvita.com/2012/04/09/driving-google-chrome-via-websocket-api/.
首先,我向http:// localhost:9222/json发送HTTP请求.这将返回Chrome中打开的标签的JSON列表,每个我都会获得一个WebSocket uri(webSocketDebuggerUrl):
[
{
"description": "",
"devtoolsFrontendUrl": "/devtools/devtools.html?ws=localhost:9222/devtools/page/C014A09F-BD0A-40BA-B23C-7B18B84942CD",
"faviconUrl": "http://cdn.sstatic.net/stackoverflow/img/favicon.ico?v=00a326f96f68",
"id": "C014A09F-BD0A-40BA-B23C-7B18B84942CD",
"title": "Using Google Chrome remote debugging protocol - Stack Overflow",
"type": "page",
"url": "https://stackoverflow.com/questions/28430479/using-google-chrome-remote-debugging-protocol",
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/C014A09F-BD0A-40BA-B23C-7B18B84942CD"
}
]
Run Code Online (Sandbox Code Playgroud)
然后我可以使用此URI来使用WebSocket发送用于调试特定选项卡的消息.我也发现这个用于使用Jetty实现的WebSocket:javax.websocket客户端的简单例子.
| 归档时间: |
|
| 查看次数: |
8089 次 |
| 最近记录: |