2017-10-18 5 views
0

のは、私のファイル名であると仮定しましょうtest.rbRuby argvを使ってコマンドラインでurlを渡す方法は?

私は、コマンドラインで次のようにURLを渡すために私のコードの2番目のパラメータにアクセスするには、最初のパラメータとargv[1]にアクセスするためにargv[0]を使用したいです:

ruby test.rb http://www.www.youtypeitwepostit.com /messages 

test.rbファイルが含まれています

require 'net/http' 
uri = URI.parse('http://www.youtypeitwepostit.com') 
http=Net::HTTP.new(uri.host,uri.port) 
request = Net::HTTP::Get.new("/") 
reply=http.request(request) 
puts "#{reply.code} #{reply.message}" 
reply.header.each_header {|key,value| puts "#{key} 
= #{value}" } 
puts "#{reply.body}" 

PLE aseはこれを行う方法について私に教えてくれます。このコマンドラインで

おかげ

+0

URL全体を渡す方が理にかなっていませんか? – Stefan

+0

これは私達があなたを助けるために十分正確な誤りの記述ではありません。 *何がうまくいかない? *どのように動作しませんか?あなたのコードにはどんな問題がありますか?エラーメッセージが表示されますか?エラーメッセージとは何ですか?結果はあなたが期待している結果を得ていないのですか?あなたはどんな結果を期待していますか、そしてなぜ、あなたはどのような結果を得ていますか、そしてその二つの違いは何ですか?あなたが観察している行動は、望ましい行動ではありませんか?望ましい行動とは何か、なぜ行動が観察され、どのように違うのですか? –

+0

これらのルール、コーナーケース、特殊ケース、境界ケース、エッジケースからの例外を含め、すべてのルールを含めて、実行したいことを*正確に指定できますか?通常のケースと例外、コーナーケース、特殊ケース、境界ケース、エッジケースの両方で、起こりそうなことを示すサンプル入力と出力を提供できますか? –

答えて

0
require 'net/http' 
uri = URI.parse(ARGV[0]) 
http=Net::HTTP.new(uri.host,uri.port) 
request = Net::HTTP::Get.new(ARGV[1]) 
reply=http.request(request) 
puts "#{reply.code} #{reply.message}" 
reply.header.each_header {|key,value| puts "#{key} 
= #{value}" } 
puts "#{reply.body}" 

そしてだけでそれを呼び出す:

ルビーtest.rb http://www.youtypeitwepostit.com /メッセージ

+0

助けてくれてありがとう –

0

、urlは最初パラメータです。

あなたはアクセスすることにより、それを使用することができARGV [0]、例えば

uri = URI.parse(ARG[0]) 
関連する問題