我想使用 url 方法 POST 和一些数据(例如 ValueOne=Value1 和 ValueTwo=Value2 等等)打开 Chrome...
是否可以通过命令行或者批处理来实现?
例如“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”http://www.url.com“这里是身体数据
谢谢
答案1
据我所知,没有直接的方法可以做到这一点。但我使用了一种解决方法:
TLDR;使用包含自动提交表单的数据 URL。
数据 URL可以包含浏览器将显示的 html。因此,我将一个包含 POST 数据和 JS 的表单放入该 URL 中以自动提交。我必须将数据编码为 base_64。
首先,通过 data-url 传递给浏览器的 HTML 如下所示:
<body onload="document.s.submit()">
<form action="domain.tld/path/script.php" name="s" method="post">
<input type="hidden" name="action" value="edit">
<input type="submit" value="go">
</form>
</body>
接下来,Command 和 data-url 的基本格式如下:
start chrome /new-window data:text/html;charset=utf-8;base64,',[base_64_enceded_url] plain-url-in-a-second-tab.tld/path
为了测试,我使用了一个在线 base64 编码器但是对于我的实际任务,我通过 MYSQL 创建了一个 txt 文件,从中我一次剪切并粘贴了一堆行到命令行:
CONCAT ('start chrome /new-window data:text/html;charset=utf-8;base64,',
REPLACE(TO_BASE64(CONCAT('<body onload="document.s.submit()"> <form action="somedomain.tld/admin/new_attrib.php" name="s" method="post"><input type="hidden" name="action" value="edit"><input type="submit" value="go"></form></body>')), '\n', ''), ' "anotherurl.tld/somepage.php?products_id=',p.products_id,'&action=edit" AS PasteMeToWindowsCMD
(我添加了 REPLACE() 是因为 TO_BASE64() 添加了换行符。这些会破坏我同时将多个命令粘贴到 CMD 的意图,并且会使从文本文件剪切命令到 CMD 变得更加复杂。)
这样,我便为需要编辑的每个实体(产品)获得了一个浏览器窗口,其中有三个选项卡代表我需要编辑的三个地方。