Python请求库发送HTTP POST请求的示例代码

 更新时间:2024年08月24日 11:54:46   投稿:yin  
这段代码使用了Python的requests库来发送HTTP POST请求,向本地服务器的API发送数据,并处理响应,一步步解释这个代码

这段代码使用了Python的requests库来发送HTTP POST请求,向本地服务器的API发送数据,并处理响应。接下来我会一步步解释这个代码,并用中文回答。 

import requests 
import json 

url = "http://localhost:11434/api/generate"

headers = {
    "Content-Type": "application/json"
}

data = {
    "model": "qwen2:0.5b",
    "prompt": "Why is the sky black? Answer in Chinese.",
    "stream": False
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)

if response.status_code == 200:
    response_text = response.text
    data = json.loads(response_text)
    actual_response = data["response"]
    print(actual_response)
else:
    print("error:", response.status_code, response.text)

{
    "model": "qwen2:0.5b",
    "created_at": "2024-08-22T06:20:16.768091631Z",
    "response": "天空为什么是黑色的?因为光线穿过大气层时,会受到不同的散射现象影响。具体来说,大气分子(如氮气、氧气等)和水蒸气阻止了阳光中的大部分波长光线,导致太阳光中只有红、橙、黄、绿、蓝五颜六色的光线被散射;而蓝色、紫色光线则被吸收并反射回去。结果就是天空呈现出黑色。",
    "done": true,
    "done_reason": "stop",
    "context": [
        151644,872,198,10234,374,279,12884,3691,30,21806,304,8453,13,151645,198,151644,77091,198,101916,100678,20412,104723,9370,11319,99519,109587,109239,105797,99371,13343,3837,36993,100683,101970,99632,99759,102060,99564,1773,100398,99883,3837,105797,102388,9909,29524,109958,99180,5373,115893,49567,7552,33108,52510,101494,99180,107345,34187,104166,101047,101212,99804,45861,109587,3837,100673,101281,99225,15946,101043,99425,5373,107678,5373,99789,5373,99679,5373,100400,75108,100847,99566,38035,9370,109587,99250,99632,99759,24968,68536,105681,5373,111413,109587,46448,99250,104460,62926,111192,104748,1773,59151,99486,101916,107433,104723,1773
    ],
    "total_duration": 3086970885,
    "load_duration": 48652771,
    "prompt_eval_count": 18,
    "prompt_eval_duration": 53432000,
    "eval_count": 90,
    "eval_duration": 2943180000
}

导入库:

import requests 
import json

代码首先导入了requests库用于发送HTTP请求,以及json库用于处理JSON数据。

定义URL和请求头:

url = "http://localhost:11434/api/generate"

headers = {
    "Content-Type": "application/json"
}

这里定义了请求的目标URL,即本地服务器上运行的API接口http://localhost:11434/api/generate。同时,定义了请求头,指定Content-Typeapplication/json,表示请求体中传递的数据格式为JSON。

创建请求体数据:

data = {
    "model": "qwen2:0.5b",
    "prompt": "Why is the sky black? Answer in Chinese.",
    "stream": False
}

data字典包含三个键值对:

  • "model": 指定使用的模型,这里是qwen2:0.5b
  • "prompt": 提供的提示问题,这里是“Why is the sky black? Answer in Chinese.”。
  • "stream": 表示是否希望服务器以流式方式返回数据,这里设为False

发送POST请求并获取响应:

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)

使用requests.post()方法发送POST请求,传递目标URL、请求头和请求体数据。然后打印服务器的响应内容。

处理响应:

if response.status_code == 200:
    response_text = response.text
    data = json.loads(response_text)
    actual_response = data["response"]
    print(actual_response)
else:
    print("error:", response.status_code, response.text)

首先检查响应的状态码是否为200(表示请求成功)。如果成功,解析响应文本为JSON格式,并提取实际的回答内容。否则,打印错误信息。

示例输出:

如果服务器正常运行并能处理请求,输出可能会是:

{
    "response": "因为天空在没有太阳的情况下没有被光线照亮,所以看起来是黑色的。"
}

程序会提取并打印 "因为天空在没有太阳的情况下没有被光线照亮,所以看起来是黑色的。"

相关文章

  • django允许外部访问的实例讲解

    django允许外部访问的实例讲解

    今天小编就为大家分享一篇django允许外部访问的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python把csv数据写入list和字典类型的变量脚本方法

    Python把csv数据写入list和字典类型的变量脚本方法

    今天小编就为大家分享一篇Python把csv数据写入list和字典类型的变量脚本方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python执行速度慢的原因及全面优化方案

    Python执行速度慢的原因及全面优化方案

    Python 作为解释型语言确实存在一些性能瓶颈,但通过深入理解其底层机制并采取合适的优化策略,可以显著提升执行效率,以下是系统的原因分析和优化方法,需要的朋友可以参考下
    2025-07-07
  • python 实现插入排序算法

    python 实现插入排序算法

    python 插入排序算法,需要的朋友可以参考下
    2012-06-06
  • python中@property和property函数常见使用方法示例

    python中@property和property函数常见使用方法示例

    这篇文章主要介绍了python中@property和property函数常见使用方法,结合实例形式分析了Python @property和property函数功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-10-10
  • Python记录numpy.empty()函数引发的问题及解决

    Python记录numpy.empty()函数引发的问题及解决

    这篇文章主要介绍了Python记录numpy.empty()函数引发的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Python中logger日志模块详解

    Python中logger日志模块详解

    这篇文章主要介绍了Python中logger日志模块详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Pandas空值处理全攻略

    Pandas空值处理全攻略

    在进行数据分析和建模时,空值的存在会给结果带来很大影响,本文主要介绍了Pandas空值处理全攻略,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • 在Pandas中进行数据重命名的方法示例

    在Pandas中进行数据重命名的方法示例

    Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,带你快速掌握如何在Pandas中进行数据重命名,需要的朋友可以参考下
    2025-01-01
  • Python 常用内置模块超详细梳理总结

    Python 常用内置模块超详细梳理总结

    模块是一个包含索引你定义的函数和变量的文件,其扩展名为.py。模块可以被其他程序引入,以使用该模块中的函数等功能。这也是使用python标准库的方法
    2022-03-03

最新评论