Flask使用随机端口生成请求

时间:2016-12-10 20:52:53

标签: python flask

当我打印端口时,我试图从烧瓶服务器生成一个获取请求到另一个,在目标端,我不断获得每个请求的随机端口

客户端:

    from flask import Flask, redirect, request
    import requests
    app = Flask(__name__)
    @app.route('/acqlock/<resource_name>')
    def acquire_resource(resource_name):
        print request.url
        response = requests.get('http://127.0.0.1:8080/acqlock/' + resource_name)
        return response.text
if __name__ == "__main__":
    app.run(host="localhost", port=8081)

服务器:

    from flask import Flask, redirect, request

    app = Flask(__name__)
    @app.route('/')
    @app.route('/acqlock/<resource_name>')
    def acquire_lock(resource_name):
        print request.url
        print request.environ.get('REMOTE_PORT')
if __name__ == "__main__":
    app.run(port=int("8080"))

它保持打印http://127.0.0.1:8080/acqlock/file 58077尽管我希望它在服务器生成请求时打印http://127.0.0.1:8081 8081

1 个答案:

答案 0 :(得分:0)

这是正常。请记住requests是客户端,它必须创建与另一台服务器的 HTTP连接。客户端上的TCP连接也需要一个端口,当您创建到远程服务器的套接字时,操作系统会为连接的客户端分配一个端口号。

您在传入HTTP连接的上下文中进行此传出HTTP连接既不在这里也不在那里。它是一个不同的连接,方向不同。

如果您需要确定请求的来源,请向请求添加信息。您可以添加自定义标题,Cookie,查询参数或发布数据。