Ich habe eine einfache API mit Sinatra erstellt, die eine E-Mail basierend auf übermittelten JSON-Daten sendet. Ich kann ein Formular erstellen, die JSON-Daten über das Formular übermitteln und auf Parameter zugreifen, um das An, den Betreff und den Text der E-Mail zu erhalten. Ich versuche jedoch, CURL zu verwenden, um die API zu testen, und scheint nicht zu funktionieren. Ich nehme an, dass meine Formatierung in der cURL-Anfrage abgebrochen ist. Unten ist eine cURL-Anfrage, die ich versucht habe, sowie die Ausgabe von params sowie ein Versuch Params mit dem JSON-Juwel zu parsen.JSON über cURL POST-Anfrage an Sinatra senden
Ich neige dazu, params mit einem riesigen Schlüssel, der eine Zeichenfolge meiner JSON-Daten mit einem Wert von Null ist. Ich habe versucht, Content-Type: application/json hinzuzufügen, und wenn ich dies tue, ist params leer. Hier
curl -X POST -H "Accept: application/json" -d '{ "to": "Brantley <[email protected]>", "subject": "hello world", "body": "Hi Jennifer! Sending you an email via this API I just made." }' http://localhost:9393/send-email
ist das params-Hash, der zurückgegeben wird ...
{"{ \"to\": \"Brantley <[email protected]>\", \"subject\": \"hello world\", \"body\": \"Hi Jennifer! Sending you an email via this API I just made.\" }"=>nil}
Ich versuche Umwandlung, dies zu etwas nützlicher mit JSON params, und dann erhalte ich die folgende ...
{\"{ \\\"to\\\": \\\"Brantley <[email protected]>\\\", \\\"subject\\\": \\\"hello world\\\", \\\"body\\\": \\\"Hi Jennifer! Sending you an email via this API I just made.\\\" }\":null}"
Ich habe einen soliden Tag auf diesem verbracht, habe 20 stackoverflow Beiträge über ähnliche Probleme gelesen, und bin immer noch ratlos, so dass jeder Rat hilfreich wäre. Prost!
Der Curl-Befehl scheint auf den ersten Blick ok. Ohne den Sinatra-Code zu sehen, können wir Ihnen jedoch nicht helfen. Bitte stellen Sie ein minimales Beispiel zusammen, das das Problem aufweist. –
Ich habe es ... keine Notwendigkeit, mit Params herumzualbern. Ich kann die JSON-Nutzlast als Hash erhalten, indem Sie Folgendes tun ... Nutzlast = JSON.parse (request.body.read) –
Bitte fügen Sie die Antwort unten und markieren Sie als akzeptiert. Vielen Dank! –