Ruby on rails 更改Rails中的HTTP头
我正在尝试与Rails中的RESTful服务进行通信。它可以返回不同格式的数据,json和xml。是否有一种特定的方法可以获取所需的数据类型 服务提到需要在HTTP头中设置ACCEPT。我不知道如何在Ruby中做到这一点 目前我做这件事是为了得到Ruby on rails 更改Rails中的HTTP头,ruby-on-rails,ruby,rest,http-headers,Ruby On Rails,Ruby,Rest,Http Headers,我正在尝试与Rails中的RESTful服务进行通信。它可以返回不同格式的数据,json和xml。是否有一种特定的方法可以获取所需的数据类型 服务提到需要在HTTP头中设置ACCEPT。我不知道如何在Ruby中做到这一点 目前我做这件事是为了得到 response = Net::HTTP.get( URI.parse( <url> ) ) response=Net::HTTP.get(URI.parse()) 我不知道如何更改此呼叫的标题信息。感谢您的帮助。谢谢。首先,您必须创建
response = Net::HTTP.get( URI.parse( <url> ) )
response=Net::HTTP.get(URI.parse())
我不知道如何更改此呼叫的标题信息。感谢您的帮助。谢谢。首先,您必须创建http会话对象:
http_session = Net::HTTP.new( URI.parse('...').to_s, 80 )
然后,您可以将http头定义为散列,并将其作为第二个参数传递给get方法:
http_session.get('/resources', {'Accept' => 'application/xml+xhtml'})
我让它这样工作
uri = URI( <domain>:<port>/<path> )
params = { <query_hash> }
headers = { <header_hash> }
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.path)
request.set_form_data( params )
request = Net::HTTP::Get.new( uri.path+ '?' + request.body , headers)
response = http.request(request)
uri=uri(:/)
参数={}
标题={}
http=Net::http.new(uri.host,uri.port)
request=Net::HTTP::Get.new(uri.path)
请求。设置表单数据(参数)
request=Net::HTTP::Get.new(uri.path+'?'+request.body,头)
response=http.request(请求)
其中query\u hash
是hash ex:{“q”=>“cats”}
类似地,对于
头\u散列
ex:{“ACCEPT”=>“text/json”}
URL也由路径和查询组成<代码>/?说我的url是http://desktop.domain.com:28880/random/path?something=other
当我尝试第一步时,它会抛出一个错误。。有什么我遗漏的吗?在第一步中,您必须只通过域。没有路径,就没有查询。所以你必须把它简化成“+1”的形式,真的很好,这应该是更高的投票率。很难找到一个简单可行的例子。