溫馨提示×

Ruby HTTP請求如何設(shè)置參數(shù)

小樊
81
2024-11-03 03:26:41
欄目: 編程語言

在Ruby中,您可以使用net/http庫來發(fā)送HTTP請求。要設(shè)置參數(shù),您需要將參數(shù)添加到請求的URL中,或者將其作為請求體的一部分(通常用于POST請求)。以下是兩種方法的示例:

方法1:將參數(shù)添加到URL中

require 'net/http'
require 'uri'

url = URI("https://example.com/api/v1/search")
params = {
  q: "ruby",
  page: 1,
  per_page: 10
}

# 將參數(shù)編碼到URL中
query = params.map { |key, value| "#{URI.encode(key)}=#{URI.encode(value)}" }.join("&")
url.query = query

response = Net::HTTP.get(url)
puts response

方法2:將參數(shù)作為請求體發(fā)送(POST請求)

require 'net/http'
require 'uri'
require 'json'

url = URI("https://example.com/api/v1/search")
params = {
  q: "ruby",
  page: 1,
  per_page: 10
}

# 將參數(shù)轉(zhuǎn)換為JSON格式
payload = { params }.to_json

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = payload

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

puts response

在這些示例中,我們首先定義了一個(gè)包含參數(shù)的哈希表。然后,我們將這些參數(shù)添加到URL中(對于GET請求)或作為JSON格式的請求體(對于POST請求)。最后,我們使用Net::HTTP庫發(fā)送請求并輸出響應(yīng)。

0