0

使用 Chrome Devtools 协议 (CDP) 可以使 Chrome “导航”到 URL。这样做会产生一个 GET。

有没有办法用 POST “导航”并提供身体?NavigateCommand 似乎只定义了 Url、CommandName、FrameId、Referer 和 TransitionType。

我正在使用 CDP 的 BaristaLabs 实现的变体。执行 GET 的代码如下所示:

public async Task<byte[]> PdfFromUrl(
  string url = "about:", bool landscape = false, 
  bool displayHeaderFooter = true, 
  bool printBackground = false, 
  byte[] postBody= null)
{

  var newSessionInfo = await CreateNewSession();

  try
  {
    using (var session = new ChromeSession(newSessionInfo.WebSocketDebuggerUrl))
    {
      using (var navigatorWatcher = new NavigatorWatcher(session))
      {
        await navigatorWatcher.Start();
        var navCmd = new NavigateCommand { Url = url };
        var navigateResult = await session.Page.Navigate(navCmd, millisecondsTimeout: 120 * 1000);
        await navigatorWatcher.WaitForNetworkIdle();
      }

参数是我的postBody,它还没有做任何事情。

显然,帖子通常来自远程客户端。但我看不出它无法模拟的任何内在原因,除了没有命令来模拟它。

我怀疑这个问题实际上是关于 CDP 以及我可能需要添加到 Barista Labs CDP 实施中的内容。

4

0 回答 0