ruby-on-rails - Rails 使用 httparty 将 JSON 解析为外部 URL
问题描述
在 Rails 应用程序中,必须将用户重定向到外部站点以进行外部处理。控制器生成一个有效的 JSON 字符串和一组标头:
@result = HTTParty.post(
"https://some-test.supertester.com/checkout",
:verify => false,
:body => JSON.parse(@payment).to_json,
headers: {
'Content-Type' => 'application/json',
'X-TimeStamp' => "#{Time.now.to_i}",
'X-API-ID:' => "#{@api_id}",
'X-API-Signature:' => "#{@api_signature}"
},
timeout: 20
)
此操作由用户通过以下方式启动:
<%= link_to t('proceed'), data_url_cart_path(id: @existing_cart.id), class: 'button' %>
其控制器操作生成上述 JSON 字符串并调用。
然而,Rails 会尝试使用具有相同操作名称的视图来响应此操作(甚至使用 生成空白format.json { head :no_content }
),当目标是将用户重定向到具有定义的标头和有效负载的上述 URL 时。
如何做到这一点?
解决方案
HTTParty
正在使用有效负载发出网络请求json
。在这种情况下@response
将得到来自网络请求的响应。如果您打电话puts @response.parsed_response.inspect
,您将在运行 Rails 服务器的终端窗口中看到json
返回的响应。
我认为您可能根本不需要将用户重定向到外部站点,而是检查响应以查看您尝试执行的操作是否成功并在您自己的应用程序中处理它。
推荐阅读
- postgresql - 如何在 Postgresql 中提取原始域名
- python - 获取 selenium 中具有相同类名的所有值
- c# - 为什么可空字符串没有 hasValue() 方法?
- php - 如何删除不需要的字符/文本 - php
- javascript - 带有 webpack 摇树的打字稿是否适用于 es5?
- dynamics-crm - Dynamics 365 Team 许可证替代方案
- node.js - Hyperledger Fabric Node.js 链码:错误:无法解析来自的引用对象
- c++ - 想要在结构中嵌入一个 const char *const 模板参数,以用作另一个函数中的模板参数
- assembly - 无法运行汇编 exe 文件
- python - 何时在 Django 模型中使用 __str___ 方法?