Ruby on rails rails中的POST请求
我需要创建一个有点奇怪(宽宏大量地说)格式的post请求。要发送的确切请求应采用以下格式 123&adv_id=345&event=sale&event_data=“金额=30美元;用户_id=204050” 向以下格式的url发送post请求很容易:- 123&adv_id=345&event=sale&amt=30_USD&user_id=204050 这可以使用如下代码实现:-Ruby on rails rails中的POST请求,ruby-on-rails,ruby-on-rails-3,post,http-post,Ruby On Rails,Ruby On Rails 3,Post,Http Post,我需要创建一个有点奇怪(宽宏大量地说)格式的post请求。要发送的确切请求应采用以下格式 123&adv_id=345&event=sale&event_data=“金额=30美元;用户_id=204050” 向以下格式的url发送post请求很容易:- 123&adv_id=345&event=sale&amt=30_USD&user_id=204050 这可以使用如下代码实现:- Net::HTTP.post_form(URI.parse("http://xyz.com/ping"),
Net::HTTP.post_form(URI.parse("http://xyz.com/ping"), params)
其中,正确填充了params变量(散列)
我应该做什么修改来解释正常场景的这种变化,特别是解释事件数据周围的双引号。您需要确保正确转义
event\u data
参数才能执行此操作。我敢肯定,打电话给post\u form
已经可以帮到你了
params["app_id"] = 123
params["adv_id"] = 345
params["event"] = 'sale'
params["event_data"] = '"amt=30_USD;user_id=204050"'
Net::HTTP.post_form(URI.parse("http://notify.tapsense.com/ads/ping"), params)
这或多或少会对您有所帮助。您需要确保
事件数据
参数已正确转义才能执行此操作。我敢肯定,打电话给post\u form
已经可以帮到你了
params["app_id"] = 123
params["adv_id"] = 345
params["event"] = 'sale'
params["event_data"] = '"amt=30_USD;user_id=204050"'
Net::HTTP.post_form(URI.parse("http://notify.tapsense.com/ads/ping"), params)
这或多或少会对你有所帮助。阅读并调整以下链接中的信息。通过这些步骤,我可以推断出4种可能的方法:
阅读并调整以下链接中的信息。通过这些步骤,我可以推断出4种可能的方法:
您为什么要使用
post\u表单
?这是否需要作为POST请求?GET请求实际上使用的是您想要的格式,而POST参数不是URL的一部分,而是嵌入在我需要发出POST请求的表单中(最好是因为我正在ping另一个带有一些数据的站点)。另外,即使我要发出get请求,这将如何工作?为什么要使用post\u表单
?这是否需要作为POST请求?GET请求实际上使用的是您想要的格式,而POST参数不是URL的一部分,而是嵌入在我需要发出POST请求的表单中(最好是因为我正在ping另一个带有一些数据的站点)。另外,即使我要发出get请求,这将如何工作?我应该如何测试实际形成的url,因为post请求是从服务器端触发的。@user523146:我看不到一种不进行模拟就可以完成的简单方法,因为您需要检查HTTPRequest的内部。你会使用哪种模拟框架?我不知道。我试着看看ActiveResource::HttpMock是否可以工作,但看起来不是这样。如果您可以使用RSpec,那么就可以工作。我会尝试一下,当我检查post_form方法时,它实际上对事件数据参数进行编码。因此,最终的url将被半编码(事件_数据中的“=”和“,”字符被%xx替换)。我应该如何测试实际形成的url,因为这是从服务器端触发的post请求。@user523146:我认为没有模拟就可以很容易做到这一点,因为您需要检查HTTPRequest的内部。你会使用哪种模拟框架?我不知道。我试着看看ActiveResource::HttpMock是否可以工作,但看起来不是这样。如果您可以使用RSpec,那么就可以工作。我会尝试一下,当我检查post_form方法时,它实际上对事件数据参数进行编码。因此,最终url将被半编码(事件_数据中的“=”和“,”字符将替换为%xx)。