python http服务

环境: python3.68 centos 7.5
python3 中实现http serverr有很多种方法,可以使用 flask(light), django , tornado 等等。也可以使用build-in 模块实现,即: http.server - HTTP servers

以下代码就是实现的一个http get 请求的完整流程。

import json
import http.server
import socketserver
from urllib.parse import urlparse, parse_qs

PORT = 7700

class HandleServer(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
        print(self.client_address)
        print(self.headers)
        query = urlparse(self.path)
        returncode, msg = 0, "success"

        if query.path.strip("/") == urlparse("/parse/").path.strip("/") :
            params = parse_qs(query.query)
            q = params("q",[""])[0]
            print("right")
        else:
            print("wrong")
            returncode, msg = 1000, "url path should be parse"

        output = {"returncode": returncode, "message": msg}
        self.wfile.write(json.dumps(output).encode("utf-8"))


handler = HandleServer

with socketserver.TCPServer(("", PORT), handler) as httpd:
    print("server starting..", PORT)
    httpd.serve_forever()

其中:
urlparse, parse_qs 是用来解析请求路径,以及解析参数
json 是将json的响应数据转成string,然后通过 encode 转换为 utf8 二进制数据

linux 命令行请求示例:

curl "http://127.0.0.1:7700/parse/?q=test"

以上是http请求,当然也可以改成https, 可以参考网上的资料。

有关 http.server 的使用,可以参见官方文档,里面是有几种方法的。

推荐资料:
Simple Python HTTP(S) Server With GET/POST Examples
https://blog.anvileight.com/posts/simple-python-http-server/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值