首页 > 解决方案 > 如何在python中处理GET请求

问题描述

我有一些在 Kubernetes 中运行的微服务,它们需要相互传递一些数据,但是我无法处理来自服务器端的 GET 请求。

我发现的文档非常关注如何在 python 上发出 GET 请求,而不是如何处理它。

所以,这就是我尝试过的:

from flask import Flask
from flask import request
import requests

app = Flask(__name__)

@app.route('/<trace_id>')
def root():
    return trace_id

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=8080, debug=True)

从客户端,我做这样的请求:

>>> trace_id = '54b012b2767e7b21321ca649872913c5'
>>> requests.get('http://my-service', params=trace_id)
<Response [404]>

在我的服务器上,我得到了这个转储:

/# python3 app.py
 * Serving Flask app "app" (lazy loading)
 ...
10.52.2.29 - - [29/Nov/2019 18:41:23] "GET /?54b012b2767e7b21321ca649872913c5 HTTP/1.1" 404 -

我想知道如何处理服务器端的请求。此外,很高兴获得一些关于处理此问题的最佳方法的建议。

注意:服务器前面有一个k8s服务,获取80端口的请求,转发到8080。

标签: pythonflask

解决方案


您需要trace_id作为输入参数传递

def root(trace_id):
    return trace_id

trace_id 是 url 的一部分,而不是查询部分:

requests.get('http://my-service/' + trace_id)

推荐阅读