web-dev-qa-db-fra.com

Comment exécuter la requête HTTP sans utiliser CURL

J'ai une boîte occupée basée sur un bras (Linux embarqué) avec des binaires limités. Comment publier ou mettre http sans utiliser curl?

21
irom

busybox a wget mais cela est limité et ne convient pas pour la publication. Vous pouvez combiner busybox avec netcat (ou nc) pour obtenir le résultat. Il vous suffit de télécharger netcat binaires pour votre plateforme. Et c'est reparti:

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

Basé sur Envoi HTTP POST avec netcat post.

11
SergA

j'ai juste le même problème que vous, j'ai donc décidé de créer une image minimale à partir d'Alpine qui fait beaucoup plus que la boîte occupée et moins que Ubuntu https://hub.docker.com/r/prima101112/palugada

vous pouvez faire curl traceroute ou même vim pour modifier l'intérieur des pods ou du conteneur

ou si vous voulez toujours continuer avec busybox j'irai

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

cette commande affichera la réponse

j'espère que cela vous aidera

2
prima.adi