Ruby 教程 目录

Ruby 使用Net::HTTP

在本章中,我们将探讨如何使用 Ruby 内置的 Net::HTTP 库来处理 HTTP 请求。Net::HTTP 是一个功能强大的库,可以帮助我们发送 GET、POST 等请求,并接收响应。

安装与配置

在 Ruby 中,Net::HTTP 不需要单独安装,因为它是标准库的一部分。只要你的 Ruby 环境已经安装好,就可以直接使用它。对于大多数项目来说,我们只需要在代码文件的顶部引入 net/http 库即可:

发送 GET 请求

发送简单的 GET 请求

发送一个简单的 GET 请求是 Net::HTTP 的基本用法之一。下面是一个例子,展示了如何获取指定 URL 的数据:

在这个例子中,我们首先通过 URI 类将字符串转换为一个 URI 对象,然后调用 Net::HTTP.get_response 方法来获取响应。

设置请求头

有时我们需要向服务器发送一些额外的信息,例如身份验证令牌或自定义的头部信息。这可以通过设置请求头来实现:

-- -------------------- ---- -------
------- ----------
------- -----

--- - -------------------------
--- - -----------------------
-------------------- - ------- ------------------
------------------- - ------------------

--- - ------------------------- --------- -------- ---------- -- -------- -- ------
  -----------------
---

---- --------
---- --------

在这个例子中,我们创建了一个新的 Net::HTTP::Get 请求对象,并设置了自定义的头部信息。然后我们使用 Net::HTTP.start 方法来发起请求,同时也可以传递 SSL 相关的参数。

发送 POST 请求

发送简单的 POST 请求

除了 GET 请求之外,Net::HTTP 还可以用来发送 POST 请求。以下是如何发送一个简单的 POST 请求:

-- -------------------- ---- -------
------- ----------
------- -----

--- - --------------------------------------
--- - ------------------------
------------------------ -- ---------

--- - ------------------------- --------- -------- ---------- -- -------- -- ------
  -----------------
---

---- --------
---- --------

在这个例子中,我们首先创建了一个 Net::HTTP::Post 请求对象,并设置了表单数据。然后通过 Net::HTTP.start 方法发送请求。

发送带有 JSON 数据的 POST 请求

当需要发送 JSON 数据时,我们可以使用 set_form_data 方法或者手动构建请求体:

-- -------------------- ---- -------
------- ----------
------- -----
------- ------

--- - --------------------------------------
--- - ------------------------
------------------- - ------------------
-------- - --------------- ---- ------- --

--- - ------------------------- --------- -------- ---------- -- -------- -- ------
  -----------------
---

---- --------
---- --------

这里我们通过 JSON.generate 方法生成 JSON 字符串,并将其作为请求体发送。

处理响应

无论发送的是 GET 还是 POST 请求,我们都需要处理来自服务器的响应。响应通常包含状态码、头部信息和响应体。我们可以从响应对象中获取这些信息:

  • 状态码:通过 response.code 获取。
  • 头部信息:通过 response['header_name'] 获取。
  • 响应体:通过 response.body 获取。

错误处理

在实际应用中,网络请求可能会失败,因此我们需要适当地处理错误。这可以通过检查响应的状态码来实现:

-- -------------------- ---- -------
------- ----------
------- -----

--- - -------------------------
-------- - ---------------------------

-- --------------------------------
  ---- ------
----
  ---- ---------- -----------------
---

这个例子中,我们检查响应是否为成功的状态(HTTP 200 到 299 之间的状态码)。如果不是,我们输出错误信息。

总结

通过以上介绍,你应该对如何使用 Ruby 的 Net::HTTP 库发送 HTTP 请求有了基本的了解。无论是简单的 GET 请求还是复杂的 POST 请求,都可以使用这个强大的库来完成。此外,正确地处理响应和错误也是非常重要的。希望这些示例代码能够帮助你在未来的项目中更好地使用 Net::HTTP

上一篇: Ruby HTTP客户端
下一篇: Ruby 使用RestClient
纠错
反馈