如何以curl命令重复Chrome请求?

Ely*_*avi 5 php google-chrome httprequest har

对于我做的一些自动化测试,我必须记录来自Chrome的请求,然后在curl命令中重复它们.我开始检查如何做...

Ely*_*avi 8

我的做法是:

  1. 当开发者工具打开时访问网站。
  2. 发出请求,确保它们已记录在控制台中。
  3. 右键单击请求,选择“另存为包含内容的 HAR”,然后保存到文件。
  4. 然后运行以下 php 脚本解析 HAR 文件并输出正确的 curls:

脚本:

<?php    
$contents=file_get_contents('/home/elyashivl/har.har');
$json = json_decode($contents);
$entries = $json->log->entries;
foreach ($entries as $entry) {
  $req = $entry->request;
  $curl = 'curl -X '.$req->method;
  foreach($req->headers as $header) {
    $curl .= " -H '$header->name: $header->value'";
  }
  if (property_exists($req, 'postData')) {
    # Json encode to convert newline to literal '\n'
    $data = json_encode((string)$req->postData->text);
    $curl .= " -d '$data'";
  }
  $curl .= " '$req->url'";
  echo $curl."\n";
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*ink 5

不知道他们在哪个版本中添加了此功能,但 Chrome 现在提供了“另存为 cURL”选项:

在此处输入图片说明

您可以通过进入开发者工具的网络选项卡下并右键单击 XHR 请求来访问它