温馨提示×

Ruby HTTP请求如何发送数据

小樊
83
2024-11-03 03:22:42
栏目: 编程语言

在Ruby中,您可以使用内置的net/http库来发送HTTP请求。以下是一个简单的示例,展示了如何使用该库发送GET和POST请求以及包含数据的情况:

require 'net/http'
require 'uri'

# 发送GET请求
def get_request(url)
  uri = URI.parse(url)
  response = Net::HTTP.get_response(uri)
  puts "GET Response: #{response.body}"
end

# 发送POST请求
def post_request(url, data)
  uri = URI.parse(url)
  request = Net::HTTP::Post.new(uri)
  request.set_form_data(data) # 设置表单数据

  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

# 示例数据
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
}

# 发送GET请求
get_request(get_url)

# 发送POST请求
post_request(post_url, post_data)

在这个示例中,我们定义了两个方法:get_requestpost_requestget_request方法接受一个URL参数,并使用Net::HTTP.get_response发送GET请求。post_request方法接受一个URL和一个包含要发送的数据的哈希参数。我们使用Net::HTTP::Post.new创建一个新的POST请求,并使用set_form_data方法设置表单数据。然后,我们使用Net::HTTP.start启动一个HTTP连接,并使用http.request发送请求。

请注意,这个示例仅用于演示目的。在实际应用中,您可能需要根据具体需求对代码进行调整,例如添加错误处理、设置请求头等。

0