在ruby中访问Net :: HTTP :: Post的Headers

nex*_*xar 9 ruby header http net-library

我有以下一点代码:

    uri = URI.parse("https://rs.xxx-travel.com/wbsapi/RequestListenerServlet")
    https = Net::HTTP.new(uri.host,uri.port)
    https.use_ssl = true
    req = Net::HTTP::Post.new(uri.path)
    req.body = searchxml
    req["Accept-Encoding"] ='gzip'
    res = https.request(req)
Run Code Online (Sandbox Code Playgroud)

这通常工作正常,但另一方的服务器抱怨我的XML中的某些东西需要xml消息和正在发送的标头的技术人员.

我有xml消息,但我无法弄清楚如何获得上面发送的Headers.

ALo*_*LoR 11

你可以加:

https.set_debug_output $stderr
Run Code Online (Sandbox Code Playgroud)

在请求之前,您将在控制台中看到发送到服务器的真实http请求.
调试这种场景非常有用.


Swa*_*and 11

要访问标头,请使用以下each_header方法:

# Header being sent (the request object):
req.each_header do |header_name, header_value|
  puts "#{header_name} : #{header_value}"
end

# Works with the response object as well:
res.each_header do |header_name, header_value|
  puts "#{header_name} : #{header_value}"
end
Run Code Online (Sandbox Code Playgroud)