0
require 'net/http'
require 'uri'

@url = 'http://foobar.com'
@query_string = {foo1: 'bar1', foo2: 'bar2'}

@post_data = Net::HTTP.post_form(URI.parse(@url), @query_string)
@request = # ? How can I get the request URL + query?
@response = @post_data.body

応答だけでなく、クエリした実際の URL を取得する方法を知っている人はいますか?

つまり、これを変数に保存して、送信されたものを記録したい:

http://foobar.com?foo1=bar1&foo2=bar2

4

3 に答える 3

0

ポスト リクエストは URL でパラメータを送信しないことに@request注意してください。

@request = URI.escape(@url + '?' + URI.encode_www_form(@query_string))
于 2013-08-30T01:27:16.260 に答える
0

応答自体から取得するのではありません (net/http でこれを行う方法はないと思います) が、次のようにすることで必要な変数を取得できます。

@request = URI.parse(@url).tap{|x|x.query=URI.encode_www_form(@query_string)}.to_s
# => "http://foobar.com?foo1=bar1&foo2=bar2"
于 2013-08-29T22:06:29.410 に答える