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

Ruby on Rails调用circle.so API出现not an HTTP URI错误如何解决

报错原因

你遇到的not an HTTP URI错误,本质是传入URI()方法的字符串缺少合法的HTTP/HTTPS协议前缀。
Postman会对没有显式标注协议的请求自动补全默认协议(通常优先匹配HTTPS),因此同样的请求地址在Postman中可以正常运行;但Ruby标准库的URI类没有这类兜底处理逻辑,不带协议头的地址字符串会被判定为非HTTP类URI,直接抛出参数异常。

修正方法

  • 首先补全URI的协议头,将原代码中
    url = URI("hub.atlas.fm/api/v1/community_members")
    修改为
    url = URI("https://hub.atlas.fm/api/v1/community_members")
  • 如果对接的API走HTTPS协议,需要在Net::HTTP的初始化配置中显式开启SSL支持,否则请求会直接连接失败,修正后的完整代码如下:
    require "uri"
    require "net/http"
    
    url = URI("https://hub.atlas.fm/api/v1/community_members")
    
    http = Net::HTTP.new(url.host, url.port)
    # 开启HTTPS请求支持
    http.use_ssl = true
    
    request = Net::HTTP::Get.new(url)
    request["Authorization"] = "phdbM12mVAiEyLF19UjoYdiU"
    
    response = http.request(request)
    puts response.read_body
    

额外注意

  • 不要在Rails业务代码中硬编码API鉴权密钥,建议将这类敏感配置存入Rails加密凭证或环境变量中,避免密钥意外泄露
  • 原生Net::HTTP的配置相对繁琐,长期迭代的项目可以考虑使用轻量第三方HTTP客户端简化请求逻辑

内容的提问来源于stack exchange,提问作者Lovely Joy Figueras

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 14:36:05