首页 > 解决方案 > 如何在python中模仿http请求

问题描述

我想构建一个 python http 服务器(使用 Django 或 Flask 等),我将其称为 X。另外,在另一台机器上还有另一个 python 服务,我将其称为 Y,并且有一个 HTTP 服务器 Z 运行在一个机器只能由 Y 访问。我希望 X 模仿 Z。更正式地说:当 X 在http://x/PATH上收到请求时,我想将整个请求(方法、标头、cookie、正文等)序列化为一个二进制字符串,通过安全连接将其传输到 Y,Y 向http://z/PATH发出相同的请求,将整个响应(再次包括标头等)序列化为二进制字符串并将其传输到 X一个安全通道,并且 X 向客户端提供相同的响应,几乎就像客户端连接的是 Z 而不是 X。

这实际上是一个代理,但我希望能够使用我开发的 X 和 Y 之间的自定义通信通道来完成所有这些工作(它使用 websockets,因此是全双工的)。我的意思是,只要它支持传输字符串,就可以使用任何通信通道。我愿意使用 SOCKS 等。我只是不知道如何。我需要技术细节而不仅仅是想法。

此外,我目前并不坚持也支持 websockets,但如果可以的话,它会很整洁。

标签: pythondjangohttpnetworkingwebsocket

解决方案


您可以使用 requests 库来创建/发送消息的副本(显示 get)。

import requests 

# api-endpoint 
URL = "http://Z/PAth"
parameter_information= "some information"
PARAMS = {'address':parameter_information} 

# sending get request and saving the response as response object 
r = requests.get(url = URL, params = PARAMS) 

推荐阅读