gpt4 book ai didi

ruby - 如何使用 rest-client 资源检查响应代码

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:12 25 4
gpt4 key购买 nike

我是 Ruby 的新手。我正在尝试针对以下类编写 RSpec 测试:

require 'rest-client'

class Query
def initialize
@@log = Logger.new(STDOUT)
RestClient.log = @@log
@@user = "joe@example.com"
@@password = "joe123"
end

def get_details
begin
url = "http://api.example.com/sample/12345"
resource = RestClient::Resource.new(url, :user => @@user,
:password => @@password, :content_type => :json, :accept => :json)
details = resource.get
rescue => e
throw e # TODO: something more intelligent
end
end
end

我发现,与返回 ResponseRestClient.get 不同,Resource.get 将响应的主体返回为 字符串。我想让 Response 正常工作,因为我想扩展它以进行不同的子资源调用。

有什么方法可以找出 GET 调用响应的 HTTP 状态代码?这将允许我编写如下测试:

require 'rspec'
require_relative 'query'

describe "Query site" do
before :all do
@query = Query.new
end

it "should connect to site" do
details = @query.get_details
expect(details).to_not be_nil
expect(details.code).to eq(200)
expect(details.body).to match /description12345/
end
end

最佳答案

Get 返回继承自 String 类的 RestClient::Response 类的实例。

您仍然可以通过调用方法代码details.code 来查看返回码。其他方法例如 details.headersdetails.cookies

关于ruby - 如何使用 rest-client 资源检查响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com