Ruby on rails 使用HttpParty向api发布哈希
我正在尝试向api发送POST请求,并将哈希作为请求的参数。所讨论的api是freshdesk的api。我使用的是rails 4 他们要求我以以下形式发送请求: 代码Ruby on rails 使用HttpParty向api发布哈希,ruby-on-rails,json,api,post,request,Ruby On Rails,Json,Api,Post,Request,我正在尝试向api发送POST请求,并将哈希作为请求的参数。所讨论的api是freshdesk的api。我使用的是rails 4 他们要求我以以下形式发送请求: 代码 { "helpdesk_ticket":{ "description":"Some details on the issue ...", "subject":"Support needed..", "email":
{
"helpdesk_ticket":{
"description":"Some details on the issue ...",
"subject":"Support needed..",
"email":"hulk@outerspace.com",
"priority":1, "status":2
},
"cc_emails":"superman@marvel.com,avengers@marvel.com"
}
样本卷曲度
旋度-uuser@yourcompany.com:test-H“内容类型:应用程序/json”
-d'{“帮助台”票证:{“描述”:“有关问题的详细信息…”,“主题”:“需要支持…”,“电子邮件”:
"hulk@outerspace.com“,“优先级”:1,“状态”:2},“抄送电子邮件”:
"superman@marvel.com,avengers@marvel.com“}'-X柱
这就是我目前拥有的
控制器
def create
email = params[:email]
description = params[:description]
subject = params[:subject]
payload = [{"helpdesk_ticket" => { 'email' => email, 'description' => description, 'subject' => subject, 'priority' => 1, 'status' => 2}}].to_json
trololol = Freshdesk.post('/helpdesk/tickets.json',
:body => payload
)
debugger
redirect_to "/support"
end
class Freshdesk
include HTTParty
@apikey = "Somethingladida"
format :json
base_uri "http://genericname.freshdesk.com/"
basic_auth @apikey, ""
end
查看
=form_tag support_index_path do
=label_tag :email
=text_field_tag :email,params[:email]
=label_tag :description
=text_field_tag :description
=label_tag :subject
=text_field_tag :subject
=submit_tag "Submit", class:"button"
主要问题是:我收到一个500内部服务器错误,因此我假设我试图创建的请求不是freshdesk api要求的格式
干杯!:) 您可以通过执行以下操作准确镜像该结构:
def freshdesk_hash
{
"helpdesk_ticket":{
"description":"Some details on the issue ...",
"subject":"Support needed..",
"email":"hulk@outerspace.com",
"priority":1, "status":2
},
"cc_emails":"superman@marvel.com,avengers@marvel.com"
}
end
但在我看来,你似乎正在将散列放入数组(
[{…
)。对数组感到抱歉。那是我试图模拟对API的GET调用的响应。无论如何,我发现你的答案违反了规则,但是一旦“帮助台”的报价单,其余的钥匙都被取下了,解决方案非常有效,谢谢您的帮助^^