gpt4 book ai didi

ruby - 在 Ruby 中生成 HTTP 响应

转载 作者:数据小太阳 更新时间:2023-10-29 06:38:43 26 4
gpt4 key购买 nike

我正在开发一个连接到 Web 服务的应用程序。我想开发一个从服务返回虚假响应的代理类,这样我就不必在开发/测试应用程序的其他部分时不断地向它发出请求。

我的应用程序期望通过 Net::HTTP 生成响应。

response = Net::HTTP.get(URI.parse('http://foo.com'))

case response
when Net::HTTPOK
# do something fun

when Net::HTTPUnauthorized
# you get the idea

我怎样才能制造一个响应对象,给它所有正确的 header ,返回一个正文字符串,等等?

response = ProxyClass.response_object

case response
when Net::HTTPOk
# my app doesn't know it's being lied to

谢谢。

最佳答案

直接使用 Net::HTTP 滚动您自己的虚假响应实际上并不难。这是带有 cookie header 的简单 200 OK:

def fake_response
net_http_resp = Net::HTTPResponse.new(1.0, 200, "OK")
net_http_resp.add_field 'Set-Cookie', 'Monster'
RestClient::Response.create("Body goes here", net_http_resp, nil)
end

由于我们中很少有人再使用原始 Net::HTTP,(可选的)最后一行将其包装为 RestClient::Response,然后可以 stub 到 RestClient 中:

stub(RestClient).post(anything) { fake_response }

关于ruby - 在 Ruby 中生成 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770748/

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