当我打印端口时,我试图从烧瓶服务器生成一个获取请求到另一个,在目标端,我不断获得每个请求的随机端口
客户端:
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
答案 0 :(得分:0)
这是正常。请记住requests
是客户端,它必须创建与另一台服务器的新 HTTP连接。客户端上的TCP连接也需要一个端口,当您创建到远程服务器的套接字时,操作系统会为连接的客户端分配一个端口号。
您在传入HTTP连接的上下文中进行此传出HTTP连接既不在这里也不在那里。它是一个不同的连接,方向不同。
如果您需要确定请求的来源,请向请求添加信息。您可以添加自定义标题,Cookie,查询参数或发布数据。