HTTP 请求

简介: 【8月更文挑战第11天】

Python 中进行 HTTP 请求最常用的库是 requests。以下是 HTTP 请求的详细讲解和代码示例。

HTTP 请求类型:

  1. GET:从服务器检索数据。最常用的方法。
  2. POST:向服务器提交数据进行处理(例如表单提交),请求数据作为请求体发送。
  3. PUT:与 POST 类似,但通常用于更新资源。
  4. DELETE:删除服务器上的资源。
  5. HEAD:与 GET 类似,但只返回响应头,不返回响应体。
  6. PATCH:对资源进行部分更新。

HTTP 请求的其他要素:

  • 请求头(Headers):提供关于请求的元数据。
  • 请求体(Body):POST 和 PUT 请求中的数据。
  • URL 参数:附加在 URL 上的键值对数据。
  • 会话(Session):跨请求保持某些参数。

安装 Requests 库:

如果你还没有安装 requests 库,可以通过 pip 安装:

pip install requests

代码示例:

以下示例展示了如何使用 Python 的 requests 库来发送不同类型的 HTTP 请求。

import requests

# GET 请求
def send_get_request(url):
    response = requests.get(url)
    return response.text

# POST 请求
def send_post_request(url, data):
    response = requests.post(url, data=data)
    return response.text

# PUT 请求
def send_put_request(url, data):
    response = requests.put(url, data=data)
    return response.text

# DELETE 请求
def send_delete_request(url):
    response = requests.delete(url)
    return response.text

# 使用 GET 请求
url = 'http://example.com/api/data'
print('GET Response:', send_get_request(url))

# 使用 POST 请求
post_url = 'http://example.com/api/submit'
post_data = {
   'key1': 'value1', 'key2': 'value2'}
print('POST Response:', send_post_request(post_url, post_data))

# 使用 PUT 请求
put_url = 'http://example.com/api/update'
put_data = {
   'field': 'new_value'}
print('PUT Response:', send_put_request(put_url, put_data))

# 使用 DELETE 请求
delete_url = 'http://example.com/api/delete'
print('DELETE Response:', send_delete_request(delete_url))

一步请求的实现:

一步请求通常指的是发送一个请求并接收响应的过程。以下是使用 requests 库进行一步 GET 请求的示例:

# 一步 GET 请求
url = 'http://example.com/data'
response = requests.get(url)

# 检查状态码
if response.status_code == 200:
    print('Request was successful.')
    # 使用响应数据
    data = response.text  # 或 response.json() 如果响应是 JSON 格式
    print(data)
else:
    print('Failed to retrieve data:', response.status_code)

在这个示例中,我们发送了一个 GET 请求到 url,然后检查响应的状态码。如果状态码是 200,表示请求成功,然后打印响应的文本内容。


"C:\Program Files\Python37\python.exe" D:/st_dev/ugot1213/test/01网络请求.py
GET Response: <!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
   
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
   
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
   
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
   
        div {
   
            margin: 0 auto;
            width: auto;
        }
    }
    </style>    
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

POST Response: <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>404 - Not Found</title>
    </head>
    <body>
        <h1>404 - Not Found</h1>
        <script type="text/javascript" src="//obj.ac.bcon.ecdns.net/ec_tpm_bcon.js"></script>
    </body>
</html>

PUT Response: <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>404 - Not Found</title>
    </head>
    <body>
        <h1>404 - Not Found</h1>
        <script type="text/javascript" src="//obj.ac.bcon.ecdns.net/ec_tpm_bcon.js"></script>
    </body>
</html>

DELETE Response: 

Process finished with exit code 0
目录
相关文章
|
11天前
|
Rust 前端开发 API
Tauri 开发实践 — Tauri HTTP 请求开发
本文介绍了如何在 Tauri 中发起 HTTP 请求。首先通过安装 Tauri 生态中的工具包并配置 `tauri.conf.json` 文件来允许特定域名的 HTTP 通信。接着封装了一个简单的 HTTP 客户端类,并在页面中使用该客户端实现 GET 和 POST 请求。最后提供了完整的源码地址以供参考。此功能使得桌面应用能够与远程服务器进行交互,增强了应用的实用性。
40 1
Tauri 开发实践 — Tauri HTTP 请求开发
|
1月前
|
数据采集
Haskell爬虫:连接管理与HTTP请求性能
Haskell爬虫:连接管理与HTTP请求性能
|
16天前
|
缓存 网络协议 JavaScript
【HTTP】构造HTTP请求和状态码
【HTTP】构造HTTP请求和状态码
39 1
【HTTP】构造HTTP请求和状态码
|
16天前
|
存储 Java 程序员
【HTTP】请求“报头”,Referer 和 Cookie
【HTTP】请求“报头”,Referer 和 Cookie
29 1
【HTTP】请求“报头”,Referer 和 Cookie
|
1月前
|
监控 网络协议 应用服务中间件
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
本文详细解析了Tomcat架构中复杂的`Connector`组件。作为客户端与服务器间沟通的桥梁,`Connector`负责接收请求、封装为`Request`和`Response`对象,并传递给`Container`处理。文章通过四个关键问题逐步剖析了`Connector`的工作原理,并深入探讨了其构造方法、`init()`与`start()`方法。通过分析`ProtocolHandler`、`Endpoint`等核心组件,揭示了`Connector`初始化及启动的全过程。本文适合希望深入了解Tomcat内部机制的读者。欢迎关注并点赞,持续更新中。如有问题,可搜索【码上遇见你】交流。
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
|
12天前
|
存储 JSON API
HTTP 请求与响应处理:C#中的实践
【10月更文挑战第4天】在现代Web开发中,HTTP协议至关重要,无论构建Web应用还是API开发,都需要熟练掌握HTTP请求与响应处理。本文从C#角度出发,介绍HTTP基础知识,包括请求与响应结构,并通过`HttpClient`库演示如何发送GET请求及处理响应,同时分析常见错误并提供解决方案,助你更高效地完成HTTP相关任务。
55 2
|
16天前
|
JSON 缓存 JavaScript
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
55 1
|
18天前
|
缓存 移动开发 前端开发
HTTP请求走私漏洞原理与利用手段分析
HTTP请求走私漏洞原理与利用手段分析
22 1
|
19天前
|
JSON 网络协议 网络安全
详解新一代 HTTP 请求库:httpx
详解新一代 HTTP 请求库:httpx
33 1
|
26天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
41 1

热门文章

最新文章