我使用Sinatra创建了一个简单的API,该API根据提交的JSON数据发送电子邮件。我可以创建一个表单,通过该表单提交JSON数据,并访问参数以获取电子邮件的收件人,主题和正文。但是,我正在尝试使用cURL来测试API,并且似乎无法正常工作。我认为我在cURL请求中的格式已被删除。以下是我尝试过的cURL请求以及params的输出,以及尝试使用JSON gem解析params的尝试。
我倾向于使用一个巨大的键来获取参数,这是我的JSON数据字符串,值为nil。我尝试添加Content-Type:application / json,当我这样做时,params为空。
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
这是返回的参数哈希...
{"{ \"to\": \"Brantley <[email protected]>\", \"subject\": \"hello world\", \"body\": \"Hi Jennifer! Sending you an email via this API I just made.\" }"=>nil}
我尝试将其转换为使用JSON参数更有用的东西,然后得到以下信息...
{\"{ \\\"to\\\": \\\"Brantley <[email protected]>\\\", \\\"subject\\\": \\\"hello world\\\", \\\"body\\\": \\\"Hi Jennifer! Sending you an email via this API I just made.\\\" }\":null}"
我在这一方面花费了整整一天,阅读了20篇关于类似问题的stackoverflow帖子,但仍然很困惑,因此任何建议都将有所帮助。干杯!
我明白了...不需要到处乱搞参数。我可以通过执行以下操作将JSON有效负载作为哈希值获取...
payload = JSON.parse(request.body.read)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句