📜  如何使用 R 语言中的 httr 包发出 HTTP 请求(1)

📅  最后修改于: 2023-12-03 15:38:05.919000             🧑  作者: Mango

如何使用 R 语言中的 httr 包发出 HTTP 请求

在 R 语言中,我们可以使用 httr 包来发出 HTTP 请求,获取网页内容、API 数据等等。httr 包提供了方便的函数,同时也支持各种 HTTP 方法和身份验证方法。

安装和加载 httr 包

在使用 httr 包之前,我们需要先安装和加载它。可以使用以下代码在 R 中安装 httr 包:

install.packages("httr")

然后使用以下代码来加载 httr 包:

library(httr)
发出 GET 请求

发出 GET 请求是最简单的 HTTP 请求类型。可以使用以下代码来发送 GET 请求:

response <- GET("https://www.baidu.com/")

这将向百度网站发出 GET 请求,并将响应存储在 response 对象中。我们可以使用以下代码来查看响应状态码:

status_code(response)

响应状态码为 200,表示请求成功。

发出 POST 请求

POST 请求用于在服务器上创建或更新资源。使用 httr 包可以很容易地发送 POST 请求。以下是发送 POST 请求的示例代码:

response <- POST("http://httpbin.org/post", body = list(name = "John", age = 30))

这将向 httpbin.org 发送 POST 请求,将“name”和“age”参数作为请求的正文发送。我们可以使用以下代码来查看响应内容:

content(response)

响应内容为一段 JSON 格式的字符串,其中包含我们在请求中发送的参数。

设置请求头

有时,我们需要向服务器发送自定义的请求头信息。可以使用 httr 包的 add_headers 函数设置请求头。以下是设置请求头的示例代码:

headers <- c("User-Agent" = "Mozilla/5.0", "Accept-Language" = "en-US,en;q=0.5")
response <- GET("https://www.google.com/", add_headers(headers))

这将向 Google 发送 GET 请求,并将“User-Agent”和“Accept-Language”请求头信息包含在请求中。我们可以使用以下代码来查看响应头:

headers(response)
身份验证

有时,我们需要向 API 发送身份验证令牌以获得访问权限。httr 包支持基本和摘要身份验证方法。以下是使用基本身份验证方法的示例代码:

response <- GET("https://api.example.com/", authenticate("username", "password"))

这将向 example.com API 发送 GET 请求,并使用“username”和“password”身份验证信息进行身份验证。

自动化测试与 API 接口测试

httr 包提供了许多功能强大的工具来编写API接口自动化测试,确保 API 接口响应与预期结果一致。以下是使用 httr 包进行自动化测试的示例代码:

library(testthat)

context("API Tests")

test_that("API can return a response", {
  response <- GET("http://example.com/")
  expect_status(response, 200)
  expect_content(response, "Welcome to example.com")
})

这将测试 example.com API 是否响应 200 状态码,以及响应是否包含“Welcome to example.com”这个字符串。

总结

httr 包是在 R 语言中发出 HTTP 请求的重要工具。使用 httr 包,我们可以发送 GET、POST 消息,设置请求头信息和身份验证等信息。同时,我们还可以使用 httr 包进行 API 测试等自动化测试和测试管理。