📅  最后修改于: 2023-12-03 15:38:05.919000             🧑  作者: Mango
在 R 语言中,我们可以使用 httr 包来发出 HTTP 请求,获取网页内容、API 数据等等。httr 包提供了方便的函数,同时也支持各种 HTTP 方法和身份验证方法。
在使用 httr 包之前,我们需要先安装和加载它。可以使用以下代码在 R 中安装 httr 包:
install.packages("httr")
然后使用以下代码来加载 httr 包:
library(httr)
发出 GET 请求是最简单的 HTTP 请求类型。可以使用以下代码来发送 GET 请求:
response <- GET("https://www.baidu.com/")
这将向百度网站发出 GET 请求,并将响应存储在 response 对象中。我们可以使用以下代码来查看响应状态码:
status_code(response)
响应状态码为 200,表示请求成功。
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”身份验证信息进行身份验证。
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 测试等自动化测试和测试管理。