• python发送外部请求


    在Python中,服务器发送外部请求是一个常见的操作,尤其是在需要集成不同服务或API时。有多种库可以帮助你完成这项任务,但最流行和广泛使用的库之一是requests。以下是如何使用requests库在Python服务器中发送外部请求的基本步骤:

    官方文档

    安装requests

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

    pip install requests
    

    发送GET请求

    发送GET请求是最简单的外部请求之一。这里是一个例子:

    import requests
    
    # 目标URL
    url = 'https://api.example.com/data'
    
    # 发送GET请求
    response = requests.get(url)
    
    # 检查请求是否成功
    if response.status_code == 200:
        # 处理响应数据
        data = response.json()  # 假设返回的是JSON数据
        print(data)
    else:
        print(f"请求失败,状态码:{response.status_code}")
    

    发送POST请求

    发送POST请求稍微复杂一些,因为你通常需要传递一些数据。这里是一个例子:

    import requests
    
    # 目标URL
    url = 'https://api.example.com/data'
    
    # 要发送的数据
    data = {
        'key1': 'value1',
        'key2': 'value2'
    }
    
    # 发送POST请求
    response = requests.post(url, data=data)
    
    # 检查请求是否成功
    if response.status_code == 200:
        # 处理响应数据
        print(response.text)  # 或者使用response.json()来处理JSON响应
    else:
        print(f"请求失败,状态码:{response.status_code}")
    

    设置请求头(Headers)

    在发送请求时,有时需要设置请求头(Headers),例如,用于认证(如API密钥)或指定内容类型。这可以通过headers参数来完成:

    import requests
    
    url = 'https://api.example.com/data'
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
    }
    data = {'key': 'value'}
    
    response = requests.post(url, json=data, headers=headers)
    
    if response.status_code == 200:
        print(response.json())
    else:
        print(f"请求失败,状态码:{response.status_code}")
    

    注意,当发送JSON数据时,应使用json参数而不是data参数,这样requests库会自动将字典转换为JSON格式并设置正确的Content-Type头。

    处理错误和异常

    在实际应用中,处理可能发生的错误和异常是非常重要的。requests库会抛出异常(如requests.exceptions.ConnectionError)以指示错误情况。你可以通过try-except块来捕获这些异常:

    import requests
    
    try:
        response = requests.get('https://some-nonexistent-domain.com')
        response.raise_for_status()  # 如果响应状态码不是200,则抛出HTTPError异常
    except requests.exceptions.RequestException as e:
        print(e)
    

    requests.exceptions.RequestExceptionrequests库中所有异常的基类,因此你可以捕获任何请求过程中可能发生的异常。

  • 相关阅读:
    Ctrl+Alt+L或Ctrl+Alt+M或Ctrl+Alt+S热键无法启用(华硕天选)与armoury creat冲突
    qwen大模型,推理速度慢,单卡/双卡速度慢,flash-attention安装,解决方案
    兴业数金一面
    eclipse写xsd报错:s4s-elt-schema-ns: The namespace of element...且没有自动补全类提示 问题的解决方法
    如何选择安全可靠的跨网文件安全交换一体机?
    NSK DD马达 直驱电机 RS232通信连接
    SpringSecurity+jwt使用
    nodejs使用kafka
    剑指offer 20. 调整数组顺序使奇数位于偶数前面
    apache httpd 多后缀解析漏洞
  • 原文地址:https://blog.csdn.net/youhebuke225/article/details/141197526