Python发送HTTP请求的不同方式与参数差别详解

 更新时间:2025年12月17日 15:54:07   作者:detayun  
这篇文章主要为大家详细介绍了Python发送HTTP请求的不同方式与参数差别,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

想象一下,你在餐厅点菜。你可以:

  • GET:像服务员大声报出你想要的菜(所有人都能听到)
  • POST:像把写好的菜单悄悄递给服务员(内容不公开)

这就是HTTP请求中最常见的两种方式,让我们用Python来探索它们的差别。

最常用的两种请求方式

1. GET请求 - 从服务器"获取"数据

就像在浏览器地址栏输入网址一样,所有参数都显示在URL中。

import requests

# 基本GET请求
response = requests.get('https://api.example.com/users')

# 带查询参数的GET请求
params = {
    'page': 2,
    'limit': 10,
    'search': 'python'
}
response = requests.get('https://api.example.com/users', params=params)

# 最终请求的URL会是:https://api.example.com/users?page=2&limit=10&search=python
print(response.url)

特点:

  • 参数在URL中可见(像明信片)
  • 有长度限制
  • 适合获取数据
  • 可以被缓存、收藏

2. POST请求 - 向服务器"提交"数据

像填写表单后提交,数据放在请求体中,不在URL中显示。

import requests

# 提交表单数据
form_data = {
    'username': 'john_doe',
    'email': 'john@example.com'
}
response = requests.post('https://api.example.com/register', data=form_data)

# 提交JSON数据(现代API常用)
json_data = {
    'product': 'laptop',
    'price': 999.99,
    'features': ['16GB RAM', '512GB SSD']
}
response = requests.post('https://api.example.com/products', json=json_data)

特点:

  • 数据在请求体中(像信封内的信)
  • 无长度限制
  • 适合创建/更新数据
  • 更安全(不暴露在URL中)

其他请求方式

# PUT - 更新/替换整个资源
requests.put('https://api.example.com/users/123', json={'name': 'new_name'})

# PATCH - 部分更新资源
requests.patch('https://api.example.com/users/123', json={'email': 'new@email.com'})

# DELETE - 删除资源
requests.delete('https://api.example.com/users/123')

参数传递的三种主要方式

1. 查询参数 (Query Parameters)

# 在URL中传递
requests.get('https://api.example.com/search?q=python&sort=newest')

# 或使用params参数(推荐)
params = {'q': 'python', 'sort': 'newest'}
requests.get('https://api.example.com/search', params=params)

2. 表单数据 (Form Data)

# 类似HTML表单提交
form_data = {'username': 'user', 'password': 'pass'}
requests.post(url, data=form_data)

3. JSON数据

# 现代API最常用的方式
json_data = {'name': 'John', 'age': 30}
requests.post(url, json=json_data)
# 注意:使用json参数会自动设置Content-Type为application/json

实际应用示例:创建一个用户

import requests

def create_user(user_data):
    url = 'https://api.example.com/users'
    
    try:
        # 使用POST发送JSON数据
        response = requests.post(url, json=user_data, timeout=10)
        
        # 检查请求是否成功
        response.raise_for_status()
        
        # 解析JSON响应
        result = response.json()
        print(f"用户创建成功!用户ID: {result['id']}")
        return result
        
    except requests.exceptions.RequestException as e:
        print(f"创建用户失败: {e}")
        return None

# 使用函数
new_user = {
    'name': '张三',
    'email': 'zhangsan@example.com',
    'role': 'admin'
}
create_user(new_user)

如何选择正确的请求方式

场景推荐方法示例
获取数据GET获取用户列表
创建新资源POST注册新用户
更新整个资源PUT替换用户所有信息
部分更新资源PATCH只更新用户邮箱
删除资源DELETE删除用户账户

小贴士

安全性:永远不要在GET请求中传递密码等敏感信息

API文档:总是先阅读API文档,了解它期望的请求方式和参数格式

错误处理:总是检查响应状态码

if response.status_code == 200:
    print("成功!")
elif response.status_code == 404:
    print("资源未找到")

现在你已经掌握了Python中不同HTTP请求方式的使用方法和区别!就像学会了不同的沟通方式,你可以根据不同的场景选择最合适的请求方法。

到此这篇关于Python发送HTTP请求的不同方式与参数差别详解的文章就介绍到这了,更多相关Python发送HTTP请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 30分钟搭建Python的Flask框架并在上面编写第一个应用

    30分钟搭建Python的Flask框架并在上面编写第一个应用

    这篇文章主要介绍了如何搭建Python的Flask框架并在上面编写一个简单的登录模版应用,代码数量少、充分体现了Flask框架的轻量与开发高效的特点,需要的朋友可以参考下
    2015-03-03
  • python执行等待程序直到第二天零点的方法

    python执行等待程序直到第二天零点的方法

    这篇文章主要介绍了python执行等待程序直到第二天零点的方法,涉及Python等待程序的实现技巧,需要的朋友可以参考下
    2015-04-04
  • Python中json.dumps()函数使用和示例

    Python中json.dumps()函数使用和示例

    这篇文章主要介绍了Python中json.dumps()函数使用和示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Python 爬虫爬取指定博客的所有文章

    Python 爬虫爬取指定博客的所有文章

    因为Google App Engine 被墙,我无法继续完善我的Moven project 还有20+天才回去,怕到时候会忘记project的进度和细节就趁着个冷的什么都不想干的时候, 大概的总结一下
    2016-02-02
  • Python使用cookielib模块操作cookie的实例教程

    Python使用cookielib模块操作cookie的实例教程

    cookielib模块经常被用来和urllib等模块配合来制作爬虫或者第三方SNS客户端等程序,比如这里我们就将举一个使用cookie来发送登录信息登录人人网的例子,well,一起来看一下Python使用cookielib模块操作cookie的实例教程
    2016-07-07
  • Python使用zmail进行邮件发送的示例详解

    Python使用zmail进行邮件发送的示例详解

    这篇文章主要为大家详细介绍了Python如何使用zmail进行邮件发送功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-03-03
  • 优化Python代码使其加快作用域内的查找

    优化Python代码使其加快作用域内的查找

    这篇文章主要介绍了优化Python代码使其加快作用域内的搜索,文中介绍了CPython相关的C代码来对查找功能进行优化,加快搜索的速度,需要的朋友可以参考下
    2015-03-03
  • Python代码打开本地.mp4格式文件的方法

    Python代码打开本地.mp4格式文件的方法

    今天小编就为大家分享一篇Python代码打开本地.mp4格式文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Pytorch如何加载自己的数据集(使用DataLoader读取Dataset)

    Pytorch如何加载自己的数据集(使用DataLoader读取Dataset)

    这篇文章主要介绍了Pytorch如何加载自己的数据集(使用DataLoader读取Dataset)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Python开发的实用计算器完整实例

    Python开发的实用计算器完整实例

    这篇文章主要介绍了Python开发的实用计算器,结合完整实例形式分析了Python实现计算器四则运算、开方、取余等相关操作技巧,需要的朋友可以参考下
    2017-05-05

最新评论