Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4146
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | mit cURL json-Daten an PHP-Script schicken |
| Date | 2017-06-30 09:51 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <oj4vnm$col$1@dont-email.me> (permalink) |
Moin,
Ich konstruiere einen Endpunkt für eine REST-API, die mittels cURL
realisiert werden soll. Damit kann ich das prima in der Shell testen -
wenn es mal funktioniert. Die unwesentliche Randbedingung: Die Sache
läuft mit PHP 7.1 auf einem nginx-Webserver, die API ist mit einem
Redirect zu erreichen (daher der Parameter -L in der curl-Zeile).
Zur Sache:
Die API besteht im Einfachsten Fall aus wenigen Zeilen PHP, die mir den
Inhalt von $_POST und $_GET anzeigen bzw. zurückgeben. Mehr passiert
noch nicht.
<?php
echo 'CMD ' . $_GET['cmd'];
echo "\n";
echo "PARAM\n";
echo print_r($_POST, true);
echo "\n";
Diese steuere ich in der Shell so an:
[rollo: ~] curl -i -d '{"a":5}' -L http://localhost/.../app/getpos
HTTP/1.1 200 OK
Server: nginx/1.10.3
Date: Fri, 30 Jun 2017 07:38:37 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
CMD getpos
PARAM
Array
(
)
Das Problem ist also: Meine "Nutzdaten, im Beispiel also der JSON-String
'{"a":5}', kommen so nicht im $_POST an, obwohl die Syntax überall so
beschrieben wird. Lasse ich den Content-Type probehalber weg, kommt
PARAM
Array
(
[{"a":5}] =>
)
als $_POST-Array an. Die Daten werden also übertrage, allerdings wie zu
erwarten falsch. Es ist übrigens egal, ob ich '{"a":5}' oder "{'a':5}"
schreibe - das wird manchmal als mögliche Fehlerquelle genannt.
Fazit:
Ich bekomme es nicht hin, auswertbare JSON-Daten zu bekommen. Wie
müssten sie eigentlich aussehen? So
Array
(
"a" => 5
}
vielleicht? Alle möglichen Beispiele, die ich gefunden habe, setzen das
irgendwie voraus :-(.
Bitte helft mir auf die Sprünge, ich drehe mich im Kreis. Danke im Voraus!
Ralph
Back to de.comp.lang.php | Previous | Next — Next in thread | Find similar | Unroll thread
mit cURL json-Daten an PHP-Script schicken Ralph Stahl <post@rstahl.de> - 2017-06-30 09:51 +0200
Re: mit cURL json-Daten an PHP-Script schicken Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-06-30 08:58 +0000
Re: mit cURL json-Daten an PHP-Script schicken Ralph Stahl <post@rstahl.de> - 2017-06-30 13:51 +0200
Re: mit cURL json-Daten an PHP-Script schicken Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-06-30 13:42 +0000
Re: mit cURL json-Daten an PHP-Script schicken Ralph Stahl <post@rstahl.de> - 2017-07-02 16:18 +0200
csiph-web