如何在不使用 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】:
busybox
有 wget
但这有限且不适合发布。
您可以将busybox
与netcat
(或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,因为它不起作用 [关闭]
应用程序如何在不与浏览器冲突的情况下使用端口 80/HTTP?