it-swarm.com.de

POST JSON over CURL mit grundlegender Authentifizierung

Ich benutze Curl von der Kommandozeile aus, um eine kleine Web-API zu debuggen, an der ich arbeite. Die Web-API erwartet eine grundlegende Authentifizierung und ein JSON-Objekt als Eingabe (POST). Derzeit funktionieren diese grundlegenden Authentifizierungen einwandfrei:

curl -i --user validuser:70e12a10-83c7-11e0-9d78-0800200c9a65 http://example.com/api.php

ich möchte aber auch ein JSON-Objekt als POST request:

curl -i --user validuser:70e12a10-83c7-11e0-9d78-0800200c9a65 -X POST -d '{"person":{"name":"bob"}}' http://example.com/api.php

Ich erhalte eine 400 Bad Request-Antwort mit dem obigen Befehl. Gibt es Ideen, wie ich ein json-Objekt in dieser POST request?

27
2bard

Probieren Sie es aus mit:

curl -i --user validuser:70e12a10-83c7-11e0-9d78-0800200c9a65 -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"person":{"name":"bob"}}' http://mysite.com/api.php

Ich habe das Bit json= Im Hauptteil entfernt.

Alternativ könnte dieser Beitrag hilfreich sein: Wie man JSON in PHP with curl postet

55
Jits
curl --request POST \
  --url http://Host/api/content/ \
  --header 'authorization: Basic Esdfkjhsdft4934hdfksjdf'
3
4F2E4A2E

Nicht verwenden

$person = file_get_contents("php://input");

verwenden Sie stattdessen

$person = $_POST['person'];

Und wenn Sie curl von der Kommandozeile aus benutzen, ist dies die Syntax, um POST json data:

curl -d 'person={"name":"bob"}'
1
Luca Matteis