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

使用Ruby+RSpec调用regres.in接口无法解析JSON的问题求助

问题原因

你配置的API域名拼写错误,公开测试接口的正确域名为reqres.in,你代码中写的regres.in是无效域名,指向了广告托管页,返回内容为HTML而非预期的JSON结构,因此触发JSON解析报错,无法正常读取返回字段。

修正后的完整代码

module User
  include HTTParty
  # 修正域名拼写
  base_uri 'https://reqres.in'
  format :json
end

describe 'grouping GET verb methods' do
  it 'List all users' do
    # 查询参数通过query参数传递,避免手动拼接URL错误
    @users = User.get('/api/users', query: { page: 2 })
    expect(@users.code).to eq(200)
    # 输出解析后的响应内容
    p @users.parsed_response
    puts @users.code
  end

  it 'List one user' do
    @user = User.get('/api/users/2')
    expect(@user.code).to eq(200)
    expect(@user['data']['id']).to eq(2)
    expect(@user['data']['first_name']).to eq("Janet")
  end
end

额外代码调整说明

  • 删除了puts expect的混用写法,expect是断言方法,不需要额外包裹输出语句
  • 移除了冗余的print语句,避免重复输出内容
  • GET请求的查询参数建议通过HTTParty内置的query参数传递,可读性更高且不容易出现拼接错误
  • 可以直接调用parsed_response方法获取已经解析完成的Ruby哈希结构,不需要手动处理JSON解析逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:06:02