1

如何从命令行脚本打开 URL 作为对 URL 的 POST 请求?我想在 Linux、Windows 和 MacOS 上执行此操作,因此这是一种跨平台的执行方式

对于其中的每一个,我都可以使用以下方法打开对 URL 的 GET 请求:

  • xdg-open [url]- Linux
  • start [url]- 窗户
  • open [url]- 苹果系统

...但我看不到执行 POST 请求的方法。有可能吗,如果可以,怎么办?

此外,展示如何将 POST 正文添加到请求中也将不胜感激。仅供参考,我正在编写的脚本是用 Ruby 编写的,因此操作系统内置的任何东西或使用 Ruby 的东西也可以。

更新:

为了澄清我希望在默认浏览器中打开它,而不仅仅是发出 POST 请求并获得结果。

4

3 回答 3

0

如果您使用 ruby​​,您可以使用该NET::HTTP库:http ://ruby-doc.org/stdlib-2.0/libdoc/net/http/rdoc/Net/HTTP.html

require 'net/http'
uri = URI('http://www.example.com/search.cgi')
res = Net::HTTP.post_form(uri, 'q' => 'ruby', 'max' => '50')
puts res.body
于 2013-03-28T19:52:12.943 回答
0

抱歉,没有可靠的方法可以跨浏览器和跨操作系统执行此操作。这是我们在 IE8 中构建加速器时 IE 团队花费大量时间研究的主题。

最接近的方法是将具有自动提交表单(或 XmlHttpRequest)的 HTML 页面写入磁盘,然后调用浏览器加载将提交表单的页面。这将您的代码限制为仅提交可以从浏览器提交的合法表单(例如,仅可能的内容类型等)。

于 2013-03-28T20:58:02.657 回答
0

我不知道我的解决方案在浏览器和平台之间的兼容性如何。

但是,您可以使用数据 URL 中的自动提交表单对该 html 进行编码,而不是使用 @EricLaw 描述的临时文件
,就像我在这里所做的那样:

https://superuser.com/questions/1281950/open-chrome-with-method-post-body-data-on-specific-url/1631277#1631277

于 2021-03-06T09:11:51.520 回答