Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更改Rails中的HTTP头_Ruby On Rails_Ruby_Rest_Http Headers - Fatal编程技术网

Ruby on rails 更改Rails中的HTTP头

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()) 我不知道如何更改此呼叫的标题信息。感谢您的帮助。谢谢。首先,您必须创建

我正在尝试与Rails中的RESTful服务进行通信。它可以返回不同格式的数据,json和xml。是否有一种特定的方法可以获取所需的数据类型

服务提到需要在HTTP头中设置ACCEPT。我不知道如何在Ruby中做到这一点

目前我做这件事是为了得到

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”的形式,真的很好,这应该是更高的投票率。很难找到一个简单可行的例子。