1

個別の行にuidを含むファイルがあり、それらをURIに含めようとしています。

File.open("File Path").readlines.each do |line|

puts line

uid = line 

uri = URI("http://example:port/path/variable=#{uid}&fragment")

res = Net::HTTP.get_response(uri)

puts res.body

しかし、「不正なURI(URIではありませんか?)」というエラーが表示されます。

誰か助けてもらえますか?

ありがとう

4

3 に答える 3

1

実際に何をフィードしているかによって大きく異なりますが、コードのトラブルシューティングをうまく行うために、これら2つのことを試すことをお勧めします。

  • 変数に正確にputs "[#{uid}]"何が含まれているかを確認するために使用します。これは、たとえば改行が含まれているかどうかを確認するのに役立ちます。右角かっこが次の行に表示され、入力の形式が正しくないことがわかります。line

  • 次のようにURLを作成してみてくださいuri = URI("http://example:port/path/variable=#{URI.encode(uid)}&fragment")。これは、通常URI/URLで許可されていない文字をエスケープするのに役立ちます。

お役に立てれば。

于 2012-09-27T10:35:05.423 に答える
1

試してみてください

uid = line.strip

は、strip先頭と末尾のスペースと改行を削除します。

p uid

また

puts uid.inspect

文字列の実際の内容が表示される場合があります。

于 2012-09-27T11:15:00.463 に答える
0

あなたはどういう意味ですか

uri = URI("http://example:port/path/?variable=#{uid}&fragment")
于 2012-09-27T10:20:54.140 に答える