Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4146

mit cURL json-Daten an PHP-Script schicken

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)

Show all headers | View raw


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 | NextNext in thread | Find similar | Unroll thread


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