Ruby HTTP請(qǐng)求如何發(fā)送數(shù)據(jù)

小樊
81
2024-11-03 03:22:42

在Ruby中,您可以使用內(nèi)置的net/http庫(kù)來(lái)發(fā)送HTTP請(qǐng)求。以下是一個(gè)簡(jiǎn)單的示例,展示了如何使用該庫(kù)發(fā)送GET和POST請(qǐng)求以及包含數(shù)據(jù)的情況:

require 'net/http'
require 'uri'

# 發(fā)送GET請(qǐng)求
def get_request(url)
  uri = URI.parse(url)
  response = Net::HTTP.get_response(uri)
  puts "GET Response: #{response.body}"
end

# 發(fā)送POST請(qǐng)求
def post_request(url, data)
  uri = URI.parse(url)
  request = Net::HTTP::Post.new(uri)
  request.set_form_data(data) # 設(shè)置表單數(shù)據(jù)

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
    http.request(request)
  end

  puts "POST Response: #{response.body}"
end

# 示例數(shù)據(jù)
get_url = 'https://jsonplaceholder.typicode.com/todos/1'
post_url = 'https://jsonplaceholder.typicode.com/posts'
post_data = {
  title: 'New post',
  body: 'This is the content of the new post.',
  userId: 1
}

# 發(fā)送GET請(qǐng)求
get_request(get_url)

# 發(fā)送POST請(qǐng)求
post_request(post_url, post_data)

在這個(gè)示例中,我們定義了兩個(gè)方法:get_requestpost_request。get_request方法接受一個(gè)URL參數(shù),并使用Net::HTTP.get_response發(fā)送GET請(qǐng)求。post_request方法接受一個(gè)URL和一個(gè)包含要發(fā)送的數(shù)據(jù)的哈希參數(shù)。我們使用Net::HTTP::Post.new創(chuàng)建一個(gè)新的POST請(qǐng)求,并使用set_form_data方法設(shè)置表單數(shù)據(jù)。然后,我們使用Net::HTTP.start啟動(dòng)一個(gè)HTTP連接,并使用http.request發(fā)送請(qǐng)求。

請(qǐng)注意,這個(gè)示例僅用于演示目的。在實(shí)際應(yīng)用中,您可能需要根據(jù)具體需求對(duì)代碼進(jìn)行調(diào)整,例如添加錯(cuò)誤處理、設(shè)置請(qǐng)求頭等。

0