我使用Sinatra创建了一个简单的API,可以根据提交的JSON数据发送电子邮件。我可以创建一个表单,通过该表单提交JSON数据,并访问params以获取电子邮件的收件人、主题和正文。然而,我正在尝试使用cURL测试API,但似乎无法使其正常工作。我认为我的cURL请求格式有问题。以下是我尝试过的cURL请求、params的输出以及使用JSON gem解析params的尝试。
我倾向于使用一个包含我的JSON数据字符串值为空的巨大键来获取params。我尝试添加Content-Type:application/json,当我这样做时,params为空。
这里是返回的参数哈希表...
我倾向于使用一个包含我的JSON数据字符串值为空的巨大键来获取params。我尝试添加Content-Type:application/json,当我这样做时,params为空。
curl -X POST -H "Accept: application/json" -d '{ "to": "Brantley <test@gmail.com>", "subject": "hello world", "body": "Hi Jennifer! Sending you an email via this API I just made." }' http://localhost:9393/send-email
这里是返回的参数哈希表...
{"{ \"to\": \"Brantley <test@gmail.com>\", \"subject\": \"hello world\", \"body\": \"Hi Jennifer! Sending you an email via this API I just made.\" }"=>nil}
我尝试将其转换为更有用的JSON参数,然后得到以下结果...
{\"{ \\\"to\\\": \\\"Brantley <test@gmail.com>\\\", \\\"subject\\\": \\\"hello world\\\", \\\"body\\\": \\\"Hi Jennifer! Sending you an email via this API I just made.\\\" }\":null}"
我已经花了一整天的时间来解决这个问题,阅读了20篇关于类似问题的stackoverflow帖子,但仍然无法解决。如果有任何建议,将不胜感激。谢谢!
payload = JSON.parse(request.body.read)
- Brantley Beaird