You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OAuth2在API中发送Bearer Token的Ruby实现咨询

使用Ruby OAuth2 gem携带Bearer Token发起请求

方式一:直接使用OAuth2 gem封装的方法

既然你已经拿到Bearer Token并存在实例变量@access_token中,无需手动拼接请求头,OAuth2 gem会自动处理认证逻辑:

  1. 确保已安装OAuth2 gem:
gem install oauth2
# 或者在Gemfile中添加后执行bundle install
# gem 'oauth2'
  1. 完整实现示例:
require 'oauth2'

# 替换为你的API基础地址
client = OAuth2::Client.new('', '', site: 'https://your-api-base-url.com')

# 用已获取的token初始化AccessToken对象
access_token = OAuth2::AccessToken.new(client, @access_token)

# 发起GET请求到目标端点
response = access_token.get('/target-endpoint-path')

# 处理响应
if response.status == 200
  puts response.parsed # JSON格式响应会自动转为Hash
else
  puts "请求失败:#{response.status} - #{response.body}"
end

如果需要发起POST请求,只需替换方法并传入参数:

# 带参数的POST请求示例
response = access_token.post('/target-endpoint-path', params: { key: 'value' })

方式二:基于你提供的Net::HTTP示例手动添加Token

如果坚持用Net::HTTP原生方法,只需在请求头中添加Authorization字段:

require 'net/http'
require 'uri'

url = URI('https://your-api-base-url.com/target-endpoint-path')
req = Net::HTTP::Get.new(url.to_s)

# 手动注入Bearer Token到请求头
req['Authorization'] = "Bearer #{@access_token}"
# 按需添加其他必要请求头,比如Content-Type
req['Content-Type'] = 'application/json'

# 执行请求并获取响应
response = Net::HTTP.start(url.host, url.port, use_ssl: url.scheme == 'https') do |http|
  http.request(req)
end

# 处理响应内容
puts response.body

内容的提问来源于stack exchange,提问作者tryingToCode716

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:06:18