Ankündigung

Einklappen
Keine Ankündigung bisher.

POST API enthält über php://input keine Daten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • POST API enthält über php://input keine Daten

    Hallo zusammen,

    ich probiere zurzeit ein ganz simple API auf der Webseite anzubieten. Die Abfrage über GET / JSON funktioniert super ohne Probleme.

    Nun möchte ich jedoch mit POST / JSON Daten empfangen. Dazu habe ich ein Chrome Extension heruntergeladen um mir mit POST die Testdaten zu schicken.

    Mein Header:
    access-control-allow-methods: POST
    content-type: application/json; charset=UTF-8
    date: Fri, 04 Dec 2020 16:44:44 GMT
    server: Apache
    x-powered-by: PHP/7.3.25
    COMPLETE REQUEST HEADERS
    apiKey: 55
    value: kurznammme
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...............
    accountId: 2
    Content-Type: application/json
    Accept: */*
    Origin: chrome-extension://aejoelaoggembcahagimdiliamlcdmfm
    Sec-Fetch-Site: none
    Sec-Fetch-Mode: cors
    Sec-Fetch-Dest: empty
    Accept-Encoding: gzip, deflate, br
    Accept-Language: de,de-DE;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
    Die Daten versuche ich folgendermaßen abzugreifen, jedoch ist diese Ausgabe immer leer. Im R. Header sind aber meine Daten enthalten: apiKey, value und accountId
    PHP-Code:
    $data json_decode(file_get_contents('php://input'), true);
    print_r($data); 
    Für Tipps und Ideen würde ich mich sehr freuen. Danke im voraus.

    Liebe Grüße Andreas

  • #2
    Evtl wäre was bewährtes wie Postman besser, um schonmal diese Fehlerquelle auszuschließen.
    Fürs Debugging empfehle ich Dir die Funktionen erstmal nicht ineinander zu verschachteln und Dir die Zwischenergebnisse ausgeben zu lassen.
    Sollten Deine Test aktuell lokal laufen, kanns noch diverse Probleme mit den Policy-Richtlinien des Browser geben.
    bitcoin.de <- Meine Freelancerwährung

    Kommentar


    • #3
      php://input liefert den Body vom Request, darüber solltest du dann auch die json daten schicken und nicht über ein header feld. dann kannst du das auch auslesen

      Kommentar


      • #4
        Zitat von maclaim Beitrag anzeigen
        Die Daten versuche ich folgendermaßen abzugreifen, jedoch ist diese Ausgabe immer leer. Im R. Header sind aber meine Daten enthalten: apiKey, value und accountId
        PHP-Code:
        $data json_decode(file_get_contents('php://input'), true);
        print_r($data); 
        Nimm das json_decode zum testen raus. Das ist so eine typische PHP-Funktion, die statt einen Fehler zu erzeugen, einfach Wortlos null zurückgibt. (null kann auch valides json gewesen sein.)

        Seit 7.3 gibt es die Möglichkeit eine Exceptions zu werfen wenn ein Fehler auftritt: https://www.php.net/manual/de/function.json-decode.php

        Kommentar


        • #5
          Vielen Dank für eure Antworten!

          Alpha Ich hatte das Problem sowohl auf localhost als auch auf dem Webserver direkt. Ich habe mit das "Postman" mal angesehen und es ist ein ganz interessanter Dienst.

          Funfare Das war die Lösung! Ich habe im "Talend Api Tester" meine Werte im Header angegeben anstatt diese im Body zu hinterlegen.

          erc Danke für die Tipp, das werde ich umsetzen.

          Thema ist geschlossen. Danke für eure schnelle Hilfe.

          Kommentar

          Lädt...
          X