Der Befehl sendJSON() sendet eine HTTP-Anfrage an die angegebene URL und gibt die Antwort des Servers zurück.
mixed sendJSON(string URL, array Daten, [array Header], [int Timeout])
mixed sendPOST(string URL, array Daten, [array Header], [int Timeout])
mixed sendXML(string URL, string XML, [array Header], [int Timeout])
Warnung: Die Anfrage wird synchron durchgeführt, das bedeutet, dass sie die Ladezeit der Fragebogen-Seite um die Zeit verzögert bis der angefragte Server eine Antwort sendet. Die Anfrage wird abgebrochen, wenn die Ladezeit mehr als 5 Sekunden (beziehungsweise den als Timeout angegeben Wert) in Anspruch nimmt.
Hinweis: Falls Sie den Timeout erhöhen, dann stellen Sie sicher, dass auf der Fragebogenseite klar erkennbar ist, dass es nach dem Klick auf „Weiter“ länger dauert. Sie können zum Beispiel den Weiter-Knopf per JavaScript nach dem Klick durch ein „Bitte warten“ ersetzen oder Sie können eine Seite einfügen, die nur eine Warte-Animation zeigt, die per JavaScript direkt abgeschickt wird und die dann zu der seite mit sendJSON() führt.
Hinweis: Die Anzahl der Anfragen ist begrenzt (s. Einschränkungen).
Hinweis: Wenn die Druckansicht eines Interviews erstellt wird, liefern die Funktionen immer den Fehlercode null beziehungsweise false.
Wenn die Anfrage aufgrund eines Fehlers nicht verarbeitet werden konnte, wird null zurückgegeben.
Wenn die Gegenstelle eine Antwort im JSON-Format sendet, wird diese als Array zurückgegeben.
Ansonsten wird die Antwort des Servers als string zurückgegeben.
Wenn die Anfrage aufgrund eines Fehlers nicht verarbeitet werden konnte, wird false zurückgegeben.
Ansonsten wird die Antwort des Servers als string zurückgegeben.
Wenn die Anfrage aufgrund eines Fehlers nicht verarbeitet werden konnte, wird false zurückgegeben.
Wenn der Server gültige XML-Daten übermittelt, werden diese dekodiert und als Array zurückgegeben, wobei jedes XML-Tag in einem Array mit den folgenden Schlüsseln repräsentiert wird:
'name' – Attribut-Name'attr' – Attribute im XML-Tag'content' – Eventueller Text-Inhalt des XML-Tags'children' – Eventuelle Kind-Elemente des XML-Tags
Ansonsten wird die Antwort des Servers als string zurückgegeben.
$data = sendJSON('https://example.com', [ 'q' => 'reflect', 'd' => 'SoSci Survey' ]); debug($data);
$data = sendJSON('https://api.openai.com/v1/chat/completions', [ 'model' => 'gpt-3.5-turbo', 'messages' = [ [ 'role' => 'user', 'content' => 'Hello!' ] ] ], [ 'Authorization' => 'Bearer 12345678990' ]); debug($data);
Falls die Gegenstelle nicht so reagiert, wie man das erwarten würde, sollten Sie zunächst Ihre Anfrage prüfen.
SoSci Survey stellt unter https://www.soscisurvey.de/tools/post-monkey.php ein kleines Script zur Verfügung. Sie erhalten dort eine URL, an welche Sie eine Anfrage (Request) übermitteln können. Anschließend können Sie den Inhalt der Anfrage überprüfen.
Wenn die Anfrage Ihrer Meinung nach korrekt ist, sehen Sie sich die Antwort an. Am einfachsten senden Sie die Anfrage einmal über die Entwickler-Tools Ihres Browsers (Entwickler-Tools im Browser) an die API. Alternativ können Sie den Rückgabewert der Funktion mittels debug() genauer ansehen (siehe oben).