首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在rails中使用rest-client查询API

尝试在rails中使用rest-client查询API
EN

Stack Overflow用户
提问于 2013-10-16 14:59:06
回答 2查看 6.4K关注 0票数 2

我使用rest客户端(谷歌搜索史上最糟糕的名字)来查询API。

这是我的代码:

代码语言:javascript
复制
def self.list
    request="http://#{URI.escape @@user}:#{URI.escape @@password}@webservicedomain.com/params/params/"
    Rails.logger.debug request
    response = RestClient.get request
    response.code
  end

它给我传递给Rest客户端的请求,然后是406个错误:

代码语言:javascript
复制
MyService.list
http://username:password@webservicedomain.com/params/params/
RestClient::NotAcceptable: 406 Not Acceptable

奇怪的是,如果我在浏览器中使用请求,它就能正常工作。我认为这可能与这个Doc服务只回答HTML有关,但我不知道如何更改,而且测试客户端实际上没有Doc。

对于初学者来说,最好的办法是看到请求的头--rest-客户端发送。

我怎么才能让它起作用?

更新

rest-client在检查后引发的异常包含以下错误:

代码语言:javascript
复制
Invalid mime-type "*/*; q=0.5"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-16 15:15:43

RestClient文档(在其存在的范围内)是这里。我不认为您的问题是API是用HTML响应的。我猜RestClient不理解您提供访问凭据的方式。试着用请求头来代替吗?

就我个人而言,我更喜欢与API交互的法拉第宝石 --向您展示实际发生的事情要好得多,特别是当出现错误时。

票数 2
EN

Stack Overflow用户

发布于 2015-09-28 15:27:49

虽然这很晚,只是FYI,但是可以通过在请求中指定accept标头来解决这个问题。默认值似乎是"/;q=0.5,application/xml“。因此,您可以通过将标头的值设置为所期望的值来修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19406839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档