web-dev-qa-db-ja.com

CURLを使用せずにHTTPリクエストを実行する方法

バイナリが制限されたarmベースのbusybox(Embedded Linux)があります。curlを使用せずにhttpでポストまたは配置する方法は?

21
irom

busyboxにはwgetがありますが、これには制限があり、投稿には適していません。 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

送信HTTP POST netcatを使用したリクエスト 投稿に基づいています。

11
SergA

私はあなたと同じ問題を抱えているので、忙しいボックスよりも多く、ubuntuよりも少ない最小限の画像をアルパインから作成することにしました https://hub.docker.com/r/prima101112/palugada

curl tracerouteまたはvimを実行して、ポッドまたはコンテナ内を編集できます

またはあなたがまだbusyboxと一緒に行きたいなら、私は通常行きます

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

そのコマンドは応答を表示します

これが役に立てば幸い

2
prima.adi