Ruby : Net::HTTP parse 在末尾添加 %0A

Ruby : Net::HTTP parse adds %0A at end

我试图打开一个名为 test.txt 的文件,然后将每一行导入一个名为 'line' 的变量中,然后将其添加到 url 文件中以发出请求。

require 'net/http'
require 'uri'

puts "Enter URL :-"
gurl = gets.chomp

total = File.foreach('test.txt').count
c=0

while(c < total)
line = IO.readlines("test.txt")[c]
aurl = "#{gurl}/#{line}"
encoded_url = URI.encode(aurl)
url = URI.parse(encoded_url)
puts "\n #{url} \n"
res = Net::HTTP.get_response(url)
puts "\n Response received for #{line} => #{res.code} \n"
c+=1
end

样本输出 =>

 http://www.example.com/z.php%0A

 Response received for z.php
 => 404

 http://www.example.com/index.php%0A

 Response received for index.php
 => 404

是否要转义 %0A(换行符)? ruby

的所有新手

您可以使用 chomp:

删除换行符
line = IO.readlines("test.txt")[c].chomp

如果test.txt有n行,你读了n+1遍!

这是修改后的版本,删除了 newline/linefeed 字符:

require 'net/http'
require 'uri'

puts "Enter URL :-"
gurl = gets.chomp

File.foreach('test.txt') do |line|
  line.chomp!
  aurl = "#{gurl}/#{line}"
  encoded_url = URI.encode(aurl)
  url = URI.parse(encoded_url)
  puts "\n #{url} \n"
  res = Net::HTTP.get_response(url)
  puts "\n Response received for #{line} => #{res.code} \n"
end