You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ruby+HTTParty发起PUT请求报错:指定资源不存在求助

问题排查与修复方案

我帮你梳理下代码里的核心问题,正是这些错误导致了请求返回“资源不存在”的报错:

1. URL字符串插值失败

你定义base_url时用了单引号,但Ruby中只有双引号才会解析#{}形式的变量插值。这就导致你的请求URL实际上是http://#{host}/api/v1/...,而不是替换成config里的真实host地址——请求到一个不存在的地址,自然会返回资源不存在的错误。

修正方式:把单引号改成双引号,让变量正常插值:

base_url = "http://#{host}/api/v1/users/self/custom_data/program_of_study"

2. Authorization头的变量名错误

你在header里用了全局变量$access_token,但前面定义的变量是access_token(没有$前缀)。这会导致Authorization头里的Bearer token是空的或者错误的,进一步影响请求的合法性。

修正方式:把$access_token改成access_token

header = {
  'Authorization': "Bearer #{access_token}",
  "Content-Type" => 'application/json',
  'Accept' => 'application/json'
}

额外验证建议

修正后可以先打印base_urlheader的值,确认:

  • base_url是否正确拼接了host地址
  • Authorization头是否包含了有效的access token

这样应该就能解决你遇到的问题了。

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

火山引擎 最新活动