接口请求方法
接口请求方法
简介
接口请求方法是指在进行应用程序编程接口(API)通信时使用的 HTTP 方法。HTTP 方法定义了客户端与服务器之间进行通信的目的和操作类型。
常见的 HTTP 请求方法:
- GET(获取):用于从服务器获取资源。
- POST(提交):用于将数据提交到服务器,以创建新的资源。
- PUT(更新):用于更新服务器上的资源,或者创建新资源(如果不存在)。
- DELETE(删除):用于请求服务器删除指定的资源。
这些 HTTP 方法提供了在客户端和服务器之间进行通信的灵活性和标准化,使得开发人员能够根据不同的操作要求选择合适的方法。
常见 HTTP 请求方法构造
| 方法 | 说明 |
|---|---|
| requests.request() | 构造一个请求,支撑以下各方法的基础方法。 |
| requests.get() | 构造 HTTP 协议中的 GET 请求。 |
| requests.post() | 构造 HTTP 协议中的 POST 请求。 |
| requests.put() | 构造 HTTP 协议中的 PUT 请求。 |
| requests.delete() | 构造 HTTP 协议中的 DELETE 请求。 |
演练环境
- https://httpbin.ceshiren.com/

构造 GET 请求
格式:requests.get(url, params=None, **kwargs)
参数:
- url : 接口的 URL。
- params :拼接在 URL 中的请求参数。
- **kwargs :更多底层支持的参数。
# 导入依赖
def get():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/get"
# 发出 GET 请求,r 接收接口响应
r = requests.get(url)
# 打印接口响应
print(r.text) # 输出响应内容的字符串形式
#print(r.status_code) # 输出响应的状态码
get()
- 打印结果

构造 GET 请求 (Java)
package com.ceshiren.first;: 指定代码所属的包。- 导入依赖: 导入
io.restassured.RestAssured和org.junit.jupiter.api.Test。 when().get("https://httpbin.ceshiren.com/get"): 构造并发送GET请求,"https://httpbin.ceshiren.com/get",为请求URL。
package com.ceshiren.first;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.when;
public class TestMethod {
@Test
void getReq() {
when()
.get("https://httpbin.ceshiren.com/get")
.then()
.log().all();
}
}
- 请求结果
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 515
Connection: keep-alive
Date: Tue, 30 Jul 2024 02:39:04 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
server: CBS
{
"args": {
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip,deflate",
"Host": "httpbin.ceshiren.com",
"Sw8": "1-Y2EyNTUxM2MtZDIyYy00NWYzLThiMzQtYjFiNTg1NDg5ODYy-ZGFhMGE3NTctNGY0OS00NzA4LTg2MjItNjU5NGFjNDMwZjRm-1-QVBJU0lYLUJK-QVBJU0lYLUJK-L2dldA==-dXBzdHJlYW0gc2VydmljZQ==",
"User-Agent": "Apache-HttpClient/4.5.13 (Java/11.0.22)",
"X-Forwarded-Host": "httpbin.ceshiren.com"
},
"origin": "36.112.118.254, 182.92.156.22",
"url": "https://httpbin.ceshiren.com/get"
}
构造 POST 请求
格式:requests.post(url, data=None, json=None, **kwargs)
参数:
- url : 接口的 URL。
- data :表单格式请求体。
- json :JSON 格式请求体。
- **kwargs :更多底层支持的参数。
# 导入依赖
import requests
def post():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/post"
# 发出 POST 请求,r 接收接口响应
r = requests.post(url)
# 打印接口响应
print(r.text) # 输出响应内容的字符串形式
#print(r.status_code) # 输出响应的状态码
post()
- 打印结果

构造 POST 请求(Java)
package com.ceshiren.first;: 指定代码所属的包。- 导入依赖: 导入
io.restassured.RestAssured和org.junit.jupiter.api.Test。 when().post("https://httpbin.ceshiren.com/post"): 构造并发送POST请求,"https://httpbin.ceshiren.com/post",为请求URL。
package com.ceshiren.first;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.when;
public class TestMethod {
@Test
void postReq() {
when()
.post("https://httpbin.ceshiren.com/post")
.then()
.log().all();
}
}
- 打印结果
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 685
Connection: keep-alive
Date: Tue, 30 Jul 2024 02:39:04 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
server: CBS
{
"args": {
},
"data": "",
"files": {
},
"form": {
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip,deflate",
"Content-Length": "0",
"Content-Type": "application/x-www-form-urlencoded; charset=ISO-8859-1",
"Host": "httpbin.ceshiren.com",
"Sw8": "1-ZjNkNzVlMmItNTk3Mi00NmU4LThiODQtOWE0MTZiZWU1NmY1-MjQzYjU2MTAtYWFiMC00NzEyLTgxZWQtNmE2MTc1ZTJiNTg5-1-QVBJU0lYLUJK-QVBJU0lYLUJK-L3Bvc3Q=-dXBzdHJlYW0gc2VydmljZQ==",
"User-Agent": "Apache-HttpClient/4.5.13 (Java/11.0.22)",
"X-Forwarded-Host": "httpbin.ceshiren.com"
},
"json": null,
"origin": "36.112.118.254, 182.92.156.22",
"url": "https://httpbin.ceshiren.com/post"
}
构造 PUT 请求
格式:requests.put(url, data=None, **kwargs)
参数:
- url : 接口的 URL。
- data :表单格式请求体。
- **kwargs :更多底层支持的参数。
# 导入依赖
import requests
def put():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/put"
# 发出 POST 请求,r 接收接口响应
r = requests.put(url)
# 打印接口响应
print(r.text) # 输出响应内容的字符串形式
#print(r.status_code) # 输出响应的状态码
put()
- 打印结果

构造 PUT 请求(Java)
package com.ceshiren.first;: 指定代码所属的包。- 导入依赖:
io.restassured.RestAssuredorg.junit.jupiter.api.Test
when().put("https://httpbin.ceshiren.com/put"): 构造并发送PUT请求,"https://httpbin.ceshiren.com/put",为请求URL。
package com.ceshiren.first;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.when;
public class TestMethod {
@Test
void putReq() {
when()
.put("https://httpbin.ceshiren.com/put")
.then()
.log().all();
}
}
- 打印结果
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 606
Connection: keep-alive
Date: Tue, 30 Jul 2024 02:39:04 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
server: CBS
{
"args": {
},
"data": "",
"files": {
},
"form": {
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip,deflate",
"Content-Length": "0",
"Host": "httpbin.ceshiren.com",
"Sw8": "1-MmM5MzhjYzItOWVlMS00NWEwLTk5Y2UtYzk3YTg1ZGU3OTcz-ZmVhMzgxMWMtNmI5Yy00NTMyLThlMjktYjFkYzM2ZDRkNGVh-1-QVBJU0lYLUJK-QVBJU0lYLUJK-L3B1dA==-dXBzdHJlYW0gc2VydmljZQ==",
"User-Agent": "Apache-HttpClient/4.5.13 (Java/11.0.22)",
"X-Forwarded-Host": "httpbin.ceshiren.com"
},
"json": null,
"origin": "36.112.118.254, 182.92.156.22",
"url": "https://httpbin.ceshiren.com/put"
}
构造 DELETE 请求
格式:requests.delete(url, **kwargs)
参数:
- url : 接口的 URL。
- **kwargs :更多底层支持的参数。
# 导入依赖
import requests
def delete():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/delete"
# 发出 POST 请求,r 接收接口响应
r = requests.delete(url)
# 打印接口响应
print(r.text) # 输出响应内容的字符串形式
#print(r.status_code) # 输出响应的状态码
delete()
- 打印结果

构造 DELETE 请求(Java)
package com.ceshiren.first;: 指定代码所属的包。- 导入依赖: 导入
io.restassured.RestAssured和org.junit.jupiter.api.Test when().delete("https://httpbin.ceshiren.com/delete"): 构造并发送DELETE请求,"https://httpbin.ceshiren.com/delete",为请求URL。
package com.ceshiren.first;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.when;
public class TestMethod {
@Test
void deleteReq() {
when()
.delete("https://httpbin.ceshiren.com/delete")
.then()
.log().all();
}
}
- 打印结果
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 585
Connection: keep-alive
Date: Tue, 30 Jul 2024 02:39:04 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
server: CBS
{
"args": {
},
"data": "",
"files": {
},
"form": {
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip,deflate",
"Host": "httpbin.ceshiren.com",
"Sw8": "1-MDZkZDA0ODUtNWE2Yy00OGRiLTkzZDMtZTRiMDkzNjQwZjkz-MmVmN2Y4NzEtMTQxOC00M2E4LWFlOTQtM2QzYWQyYzRjNjE5-1-QVBJU0lYLUJK-QVBJU0lYLUJK-L2RlbGV0ZQ==-dXBzdHJlYW0gc2VydmljZQ==",
"User-Agent": "Apache-HttpClient/4.5.13 (Java/11.0.22)",
"X-Forwarded-Host": "httpbin.ceshiren.com"
},
"json": null,
"origin": "36.112.118.254, 182.92.156.22",
"url": "https://httpbin.ceshiren.com/delete"
}
构造通用请求方法
格式:requests.request(method, url, **kwargs)
参数:
-
method: 请求方法。GET,OPTIONS,HEAD,POST,PUT,PATCH,DELETE。
url: 接口的 URL。
**kwargs:更多底层支持的参数。
def request(method, url, kwargs):
"""Constructs and sends a :class:`Request <Request>`.
:param method: method for the new :class:`Request` object: ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, or ``DELETE``.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the query string for the :class:`Request`.
:param data: (optional) Dictionary, list of tuples, bytes, or file-like
object to send in the body of the :class:`Request`.
:param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
:param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
:param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
:param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
to add for the file.
:param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
:param timeout: (optional) How many seconds to wait for the server to send data
before giving up, as a float, or a :ref:`(connect timeout, read
timeout) <timeouts>` tuple.
:type timeout: float or tuple
:param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``.
:type allow_redirects: bool
:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
:param verify: (optional) Either a boolean, in which case it controls whether we verify
the server's TLS certificate, or a string, in which case it must be a path
to a CA bundle to use. Defaults to ``True``.
:param stream: (optional) if ``False``, the response content will be immediately downloaded.
:param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
:return: :class:`Response <Response>` object
:rtype: requests.Response
底层参数说明
| 参数 | 应用场景 |
|---|---|
| method | 请求方法 |
| url | 请求 URL |
| params | 请求中携带 URL 参数 |
| data | 请求中携带请求体(默认为表单请求) |
| json | 请求中携带 json 格式的请求体 |
| headers | 请求中携带头信息 |
| cookies | 请求中携带 cookies |
| files | 请求中携带文件格式的请求体 |
| auth | 请求中携带认证信息 |
| timeout | 设置请求超时时间 |
| allow_redirects | 请求是否允许重定向 |
| proxies | 设置请求代理 |
| verify | 请求是否要认证 |
| cert | 请求中携带 ssl 证书 |
总结
- 构造 GET 请求
- 构造 POST 请求
- 构造 PUT 请求
- 构造 DELETE 请求
- 构造通用请求方法
- 底层参数说明