当前位置:  开发笔记 > 后端 > 正文

如何在rails中使用x-www-form-urlencoded

如何解决《如何在rails中使用x-www-form-urlencoded》经验,为你挑选了1个好方法。

我试图从ExactOnlineAPI访问令牌,但文档建议只使用 x-www-form-urlencoded.Ruby on Rails是否有这种编码,如果是这样,我该如何使用它.

x-www-form-urlencoded和之间有什么不同encode_www_form

 params =  {
             :code => "#{code}",
             :redirect_uri => '/auth/exact/callback',
             :grant_type   => "authorization_code",
             :client_id   => "{CLIENT_ID}",
             :client_secret => "CLIENT_SECRET"
           }
uri = URI('https://start.exactonline.nl/api/oauth2/token')
#
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
puts "Access Token: "+res.body

Rajarshi Das.. 10

请求主体由表单的标记定义.在表单标记中有一个名为的属性enctype,该属性告诉浏览器如何编码表单数据.此属性可以具有多个不同的值.默认值为application/x-www-form-urlencoded,它告诉浏览器对所有值进行编码.

因此,当我们想要发送数据以通过这些数据提交表单时,标题将为application/x-www-form-urlencoded定义的enctype 发送表单的参数

http.set_form_data(param_hash)

为您

params =  {
         :code => "#{code}",
         :redirect_uri => '/auth/exact/callback',
         :grant_type   => "authorization_code",
         :client_id   => "{CLIENT_ID}",
         :client_secret => "CLIENT_SECRET"
       }
  uri = URI('https://start.exactonline.nl/api/oauth2/token')
  #

  Net::HTTP::Get.new(uri.request_uri).set_form_data(params)

或者用于表单提交使用的发布请求 Net::HTTP::Post

encode_www_form是:

它从给定的枚举生成URL编码的表单数据.

URI.encode_www_form([["name", "ruby"], ["language", "en"]])
#=> "name=ruby&language=en"

在你的情况下

uri.query = URI.encode_www_form(params)
#=> "code=aas22&redirect_uri=...."

更多信息在这里



1> Rajarshi Das..:

请求主体由表单的标记定义.在表单标记中有一个名为的属性enctype,该属性告诉浏览器如何编码表单数据.此属性可以具有多个不同的值.默认值为application/x-www-form-urlencoded,它告诉浏览器对所有值进行编码.

因此,当我们想要发送数据以通过这些数据提交表单时,标题将为application/x-www-form-urlencoded定义的enctype 发送表单的参数

http.set_form_data(param_hash)

为您

params =  {
         :code => "#{code}",
         :redirect_uri => '/auth/exact/callback',
         :grant_type   => "authorization_code",
         :client_id   => "{CLIENT_ID}",
         :client_secret => "CLIENT_SECRET"
       }
  uri = URI('https://start.exactonline.nl/api/oauth2/token')
  #

  Net::HTTP::Get.new(uri.request_uri).set_form_data(params)

或者用于表单提交使用的发布请求 Net::HTTP::Post

encode_www_form是:

它从给定的枚举生成URL编码的表单数据.

URI.encode_www_form([["name", "ruby"], ["language", "en"]])
#=> "name=ruby&language=en"

在你的情况下

uri.query = URI.encode_www_form(params)
#=> "code=aas22&redirect_uri=...."

更多信息在这里

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有