如何在不使用 CURL 的情况下运行 HTTP 请求

Posted

技术标签:

【中文标题】如何在不使用 CURL 的情况下运行 HTTP 请求【英文标题】:How to run the HTTP request without using CURL 【发布时间】:2016-01-02 11:05:20 【问题描述】:

我有基于 arm 的 busybox(嵌入式 Linux),二进制文件有限。如何在不使用 curl 的情况下进行 http post 或 put?

【问题讨论】:

检查您是否有wget,它提供了一些类似的功能,但实际上,您应该告诉我们更多有关您的项目规范的信息。请不要在 cmets 中回复您的问题。此外,这很可能会被关闭,因为它与解决“if/then/else/endif”类型的编码问题无关。 stackExchange 上的相关站点,softwarerecs.stackexchange.com 或 unix.stackexchange.com 可能是问这个问题的更好地方。祝你好运! 【参考方案1】:

busyboxwget 但这有限且不适合发布。 您可以将busyboxnetcat(或nc)结合使用以获得结果。您只需为您的平台下载netcat 二进制文件。我们开始吧:

POST_PATH="/login.cgi"
HOST=199.188.1.99
BODY="Put here html body...."
BODY_LEN=$( echo -n "$BODY" | wc -c )
echo -ne "POST $POST_PATH HTTP/1.0\r\nHost: $HOST\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: $BODY_LEN\r\n\r\n$BODY" | \
  nc -i 3 $HOST 80

基于Sending HTTP POST request with netcat 帖子。

【讨论】:

2022 年更新:Busybox 现在还有一个 netcat 小程序 github.com/mirror/busybox/blob/master/networking/nc.c【参考方案2】:

我和你有同样的问题,所以我决定从 alpine 创建最小图像,它比繁忙的盒子做得更多,比 ubuntu 少 https://hub.docker.com/r/prima101112/palugada

你可以做 curl traceroute 甚至 vim 来编辑 pod 或容器

或者如果你还想继续使用busybox,我通常会去

kubectl exec -it busybox -- wget url
kubectl exec -it busybox -- cat index.html

该命令将显示响应

希望这会有所帮助

【讨论】:

这可能是一个很好的评论,但不是一个答案。请阅读规则。 是的,对不起,我的错。我已经编辑了评论。谢谢

以上是关于如何在不使用 CURL 的情况下运行 HTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章

Docker 中的 Kong : 在不使用 curl 的情况下配置 API 端点

如何在不使用 curl 和 guzzle 的情况下从控制器 Laravel 调用 API,因为它不起作用 [关闭]

如何在不显示窗口的情况下运行 PowerShell 脚本?

应用程序如何在不与浏览器冲突的情况下使用端口 80/HTTP?

在不使用 mod_rewrite 的情况下运行没有扩展的 PHP?

PHP/Curl/Wordpress 在不刷新页面的情况下发布数据,curl 不起作用