Ruby HTTP::Message的未定义方法条

Ruby HTTP::Message的未定义方法条,ruby,Ruby,我想使用http客户端重写此代码: http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request.basic_auth(user, pass) request['content-type'] = 'application/

我想使用http客户端重写此代码:

http = Net::HTTP.new(url.host, url.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE

    request = Net::HTTP::Post.new(url)
    request.basic_auth(user, pass)
    request['content-type'] = 'application/xml'
    request['cache-control'] = 'no-cache'
    request.body = request_body

    response = http.request(request).body
    response = Response.new(response)
    check_for_approved_response(response)
在此代码中:

request = HTTPClient.new()
request.set_auth(url, user, pass)

response = request.post(url, request_body)
response = Response.new(response)
check_for_approved_response(response)
但我在运行代码时得到了这个结果:

undefined method `strip' for #<HTTP::Message:0x007fdbbf3cfdc8>
/Users/user/.rvm/gems/ruby-2.2.2/gems/nori-2.6.0/lib/nori.rb:43:in `parse'
我试图要求:

require 'httpclient'
require 'active_support/all'
require 'active_support/core_ext'
require 'active_support/core_ext/object'

但我还是犯了这个错误。您知道如何解决此问题吗?

看起来Nori需要的是字符串,而不是HTTP::Message对象。您是否应该直接传递
raw\u response.body
而不是
raw\u response
对象

Nori.new(parser: :nokogiri, advanced_typecasting: false, :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }).parse(raw_response.body)

raw\u response
in从未在提供的代码中定义。@mudasobwa它被定义为attr\u reader:raw\u response
Nori.new(parser: :nokogiri, advanced_typecasting: false, :convert_tags_to => lambda { |tag| tag.snakecase.to_sym }).parse(raw_response.body)