logo       

[ruby-list:42086] Re: [Q] http get 時の form への入力について: msg#00117

lang.ruby.japanese

Subject: [ruby-list:42086] Re: [Q] http get 時の form への入力について

okkez といいます。

06/04/22 に ITSUMI ken-ichi<itsumi.ml-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx>
さんは書きました:
> ↓みたいに、ハッシュとして与えてやると動きません(パラメータを与えない
> のと同じ動作になります)
>
> open("http://seibun.nosv.org/";, {"p" => "test"}) {|f|
> f.each_line {|line| p line}
> }
> Net::HTTP.get を使っても駄目でした。
>
> require 'net/http'
> Net::HTTP.version_1_2 # おまじない
>
> header={ "p" => "test"]}
> Net::HTTP.start('seibun.nosv.org', 80) {|http|
> response = http.get('/', header)
> puts result_of_analisys(response.body)
> }
>
open-uri のopenやNet::HTTP#getの第二引数はquery stringではなくて、http headerです。

なのでnet/httpでやるとすれば以下の様になると思います。

require 'net/http'
Net::HTTP.version_1_2
Net::HTTP.start('seibun.nosv.org', 80){|http|
res = http.get('/?p=test')
puts res.body
}

GETのパラメータを動的に変えたいということであれば、open-uriのopenやNet::HTTP#getの
第一引数の文字列を動的に組み立てる必要があると思います。

--
okkez
okkez000-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise