广告位联系
返回顶部
分享到

Python如何实现HTTP echo服务器

python 来源:互联网 作者:佚名 发布时间:2025-01-07 22:31:32 人浏览
摘要

一个用来做测试的简单的 HTTP echo 服务器。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 from http.server import HTTPServer, BaseHTTPRequestHandler import json class

一个用来做测试的简单的 HTTP echo 服务器。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

from http.server import HTTPServer, BaseHTTPRequestHandler

import json

class EchoHandler(BaseHTTPRequestHandler):

    def do_GET(self):

        # 构造响应数据

        response_data = {

            'path': self.path,

            'method': 'GET',

            'headers': dict(self.headers),

            'query_string': self.path.split('?')[1] if '?' in self.path else ''

        }

        # 设置响应头

        self.send_response(200)

        self.send_header('Content-Type', 'application/json')

        self.end_headers()

        # 发送响应

        self.wfile.write(json.dumps(response_data, indent=2).encode())

    def do_POST(self):

        # 获取请求体长度

        content_length = int(self.headers.get('Content-Length', 0))

        # 读取请求体

        body = self.rfile.read(content_length).decode()

        # 构造响应数据

        response_data = {

            'path': self.path,

            'method': 'POST',

            'headers': dict(self.headers),

            'body': body

        }

        # 设置响应头

        self.send_response(200)

        self.send_header('Content-Type', 'application/json')

        self.end_headers()

        # 发送响应

        self.wfile.write(json.dumps(response_data, indent=2).encode())

def run_server(port=8000):

    server_address = ('', port)

    httpd = HTTPServer(server_address, EchoHandler)

    print(f'Starting server on port {port}...')

    httpd.serve_forever()

if __name__ == '__main__':

    run_server()

这个 HTTP echo 服务器的特点:

  • 支持 GET 和 POST 请求
  • 返回 JSON 格式的响应
  • 对于 GET 请求,会返回:
    • 请求路径
    • 请求方法
    • 请求头
    • 查询字符串
  • 对于 POST 请求,额外返回请求体内容

使用方法:

  • 运行脚本启动服务器
  • 使用浏览器或 curl 访问 http://localhost:8000

测试示例:

1

2

3

4

# GET 请求

curl http://localhost:8000/test?foo=bar

# POST 请求

curl -X POST -d "hello=world" http://localhost:8000/test


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 使用Python绘制蛇年春节祝福艺术图

    使用Python绘制蛇年春节祝福艺术图
    1. 绘图的基本概念 在 Python 中,我们将使用以下方法和模块完成绘制任务: matplotlib.patches 模块: 提供了绘制基本几何图形的功能,例如圆
  • Python如何实现HTTP echo服务器

    Python如何实现HTTP echo服务器
    一个用来做测试的简单的 HTTP echo 服务器。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 from ht
  • python中_init_.py的作用

    python中_init_.py的作用
    1. __init__.py 是个啥? __init__.py,顾名思义,这个文件名就透露出它是用来初始化的。在Python里,它主要用于标识一个目录是一个包(Package)
  • Python调用JavaScript代码的几种方法
    1. 使用PyExecJS执行JavaScript代码 PyExecJS是一个流行的Python库,它可以用来在Python中运行JavaScript代码。通过这个库,Python代码可以调用JS函数,
  • python中json.dumps和json.dump区别
    1、json.dumps和json.dump的区别 json.dumps()是将 Python 对象序列化为 JSON 格式的字符串。如果你想将 JSON 数据写入文件,可以将json.dumps()生成的字符
  • 使用Python和LabelMe实现图片验证码的自动标注功能

    使用Python和LabelMe实现图片验证码的自动标注功能
    使用 Python 和 LabelMe 实现图片验证码的自动标注 在处理图片验证码时,手动标注是一项耗时且枯燥的工作。本文将介绍如何使用 Python 和 L
  • Python Pandas轻松实现数据清理
    在当今的数据驱动时代,数据清理是数据分析、机器学习项目中至关重要的一步。脏数据、缺失值、重复记录等问题都可能严重影响结果的
  • 基于Python搭建局域网大文件分享传输工具

    基于Python搭建局域网大文件分享传输工具
    1.简介 由于单位不让用优盘、禁止用飞秋、也不准使共享,禁用FTP,也禁止搭建网站,且目前局域网内用的IM不支持1G以上文件传输,于是在
  • Python中如何判断是否为AJAX请求
    在Web开发中,AJAX(Asynchronous JavaScript and XML)请求是一种非常常见的与服务器进行数据交互的方式。它允许在不重新加载整个页面的情况下,
  • 一文带你深入了解Python中的多进程编程
    在 Python 中,多进程编程是一种提高程序运行效率的有效手段。相比于多线程编程,多进程编程可以充分利用多核 CPU 的优势,实现真正的并
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计