python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python发送HTTP请求

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

作者:detayun

这篇文章主要为大家详细介绍了Python发送HTTP请求的不同方式与参数差别,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

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

这就是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)

特点:

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)

特点:

其他请求方式

# 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请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文