Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 发出http POST请求,返回xml响应并解析xml字段_Ruby On Rails_Ruby_Xml Parsing_Xmlhttprequest_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 发出http POST请求,返回xml响应并解析xml字段

Ruby on rails 发出http POST请求,返回xml响应并解析xml字段,ruby-on-rails,ruby,xml-parsing,xmlhttprequest,ruby-on-rails-5,Ruby On Rails,Ruby,Xml Parsing,Xmlhttprequest,Ruby On Rails 5,我想发出一个HTTPPOST请求,解析XML响应并返回XML中SessionId字段的值。这就是我到目前为止所尝试的。 Ps:有没有一种方法可以从控制台运行这个类,以查看响应 class Documents::CreateSession def initialize() @username = Rails.secrets.legal_doc.username @password= Rails.secrets.legal_doc.password end d

我想发出一个HTTPPOST请求,解析XML响应并返回XML中SessionId字段的值。这就是我到目前为止所尝试的。 Ps:有没有一种方法可以从控制台运行这个类,以查看响应

class Documents::CreateSession

  def initialize()
      @username = Rails.secrets.legal_doc.username
      @password= Rails.secrets.legal_doc.password
  end

  def start

    require "net/http"
    require "uri"

    uri = URI.parse("http://example.com/search")

    http = Net::HTTP.new(uri.host, uri.port)

    request = Net::HTTP::Post.new(uri.request_uri)
    request.set_form_data({"userid" => @username, "password" => @password})

    response = http.request(request)

  end

end 

我认为您可以按照现在的方式运行代码。启动控制台并执行以下操作:

obj = Documents::CreateSession.new
obj.start

出于调试目的,您可以在发出请求之前将binding.pry放在start方法中。

到目前为止,您在解析XML方面做了哪些尝试?您提供的代码基本上只是发出一个HTTP请求。您的示例非常基本,所以我不确定您想要的是什么。我喜欢可以使用服务并且可以从控制台轻松测试的哑控制器。这是一篇好文章,但有很多。