2 votes

Obtenir l'erreur curl: (3) Le numéro de port s'est terminé par ' ' lors de l'exécution de curl POST à partir du script bash

Je suis en train d'essayer d'exécuter curl à partir d'un script bash et lors de l'exécution de la commande curl POST, cela renvoie l'erreur curl: (3) Numéro de port terminé par ' '.

par exemple, le script.sh contient le curl suivant

curl -k -X -H "content-type: application/json" POST -d 
  '{\"test_field\": \"test.com\",
     \"head\": \"-----BEGIN REQUEST-----\n
MIICvzCCAacCAQAwejgVPmU0J/BUbIuyOC5KXMYkc2KqggRBLpLdKs8ODo5cVKzVa7UOmNGRdGncM1WC0HHnn8E47fYnjmn72WQ94L1kBqJuM+olYbOtyop84lmYo0LTm0DH/w4DBlzUdp4 Z8EYFuRtv1En2TkJ6YxI86z7Bwc/I20HPZPQYEQ4v=\n
-----END CERTIFICATE REQUEST-----\"
  }' https://mytestserver/v1/testfield

Cela donne:

curl: (3) Numéro de port terminé par ' '
curl: (6) Impossible de résoudre l'hôte: POST
{"errors":[]}

Si j'exécute la même chose depuis postman avec le même contenu du corps, cela s'exécute avec succès.

Le contenu

-----BEGIN REQUEST-----
MIICvzCCAacCAQAwejgVPmU0J/BUbIuyOC5KXMYkc2KqggRBLpLdKs8ODo5cVKzVa7UOmNGRdGncM1WC0HHnn8E47fYnjmn72WQ94L1kBqJuM+olYbOtyop84lmYo0LTm0DH/w4DBlzUdp4 Z8EYFuRtv1En2TkJ6YxI86z7Bwc/I20HPZPQYEQ4v=
-----END REQUEST-----

contient des espaces et des caractères spéciaux /. J'ai essayé de les échapper mais sans succès.

2voto

dash-o Points 7093

Le message d'erreur indique que l'argument 'POST' est pris pour un nom d'hôte. Probablement, parce que Curl attend que le '-X' soit suivi de la commande (http).

D'après la page de manuel de 'curl': Normalement, vous n'avez pas besoin de cette option. Toutes sortes de requêtes GET, HEAD, POST et PUT sont plutôt invoquées en utilisant des options de ligne de commande dédiées.

Considérez l'une des alternatives:

curl -k -X POST -H 'content-type: ...' -d '{ ...}' https://mytestserver/...

OU, laissant curl faire sa magie: RECOMMANDÉ

curl -k -H 'content-type: ...' -d '{ ...}' https://mytestserver/...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X