Wenn ich den folgenden Befehl ausführen, alles funktioniert super:Zugriff auf Web-Service mit Curl, in/bin/sh Skript verursacht „HTTP 415 Nicht unterstützter Medientyp“
curl -s -o /dev/null -w %{http_code} \
http://www.example.com/mywebservice/generic.example.com \
--header "Content-type: application/json" --request PUT \
--data '{"hostname":"generic.example.com", "project":"none", "usage":"generic", "environment":"production"}'
Wenn ich in eine diesen Befehl setzen in den Server-Logs Variable in einem/bin/sh Skript, und führen sie es aus, erhalte ich „HTTP 415 Nicht unterstützter Medientyp“ zeigt nach oben:
#!/bin/sh
read -d '' CMD << EOF
curl -s -o /dev/null -w %{http_code} http://www.example.com/mywebservice/generic.example.com \
--header "Content-type: application/json" --request PUT \
--data '{"hostname":"generic.example.com", "project":"none", "usage":"generic", "environment":"production"}'
EOF
`$CMD`
ich den Befehl durch den Ausdruck überprüft, und es sieht beispielsweise wie die Manuelles I:
#!/bin/sh
read -d '' CMD << EOF
curl -s -o /dev/null -w %{http_code} http://www.example.com/mywebservice/generic.example.com \
--header "Content-type: application/json" --request PUT \
--data '{"hostname":"generic.example.com", "project":"none", "usage":"generic", "environment":"production"}'
EOF
echo $CMD
Ausgang:
curl es -o/dev/null -w% {} HTTP_CODE http://www.example.com/mywebservice/generic.example.com --header "Content-Type: application/json" --request PUT --data ‚{“ Host-Name ":" generic.example.com“, "Projekt": "none", "Nutzung": "generic", "Umwelt": "Produktion"}‘
Wie sehen die Header aus (fügen Sie das '-i' Flag hinzu oder' -v' für mehr Ausführlichkeit) wenn die Anfrage gesendet wird? Ist es immer noch dasselbe? –
@peeskillet -v war definitiv informativ. Auf Anhieb wurde "Content-Type: application/x-www-form-urlencoded" angezeigt, so dass der Befehl das Argument --header nicht korrekt angezeigt wurde. Ich denke, das ist ein Problem beim Setzen von Befehlen in eine Befehlszeile. Ich werde es wahrscheinlich einfach ohne eine Variable ausführen. – wsaxton
Ich stieß auf das gleiche Problem, konnten Sie es @waxton herausfinden? – Masked