有这样一个需求现在有两台a,b两台电脑组成了一个局域网,在a电脑上开发webjava应用,需要调用第三方接口做http请求,但是这个请求只能在b电脑上请求。
一种解决方案:自定义一个中间服务,在电脑b上运行一个简单的http服务,接收电脑a的请求并代为转发。
一、编写代理服务器py脚本。
使用python flask快速实现代码如下 文件命名为proxy.py
from flask import flask, request import requests app = flask(__name__) # 添加根路由用于测试服务是否启动 @app.route('/') def index(): return "flask 代理服务已启动!" @app.route('/forward/<path:path>', methods=['get','post']) def forward_request(path): url = f'http://第三方接口服务器ip:8080/{path}' result = requests.request( method=request.method, url=url, headers={key: value for (key, value) in request.headers if key != 'host'}, data=request.get_data(), cookies=request.cookies, allow_redirects=false ) print(f"response: {result.response}") return result.response if __name__ == '__main__': app.run(host='0.0.0.0', port=8080, debug=true)
若b电脑ip为http://192.168.28.45:8080/,则在a电脑调用第三方接口地址为
http://192.168.28.45:8080/forward/具体接口地址。
二、安装python环境
打开微软store,搜索python,选一个版本安装。这种直接安装,不需要手动配置环境变量,pip工具也不用单独安装。(如果已经安装过python和pip工具,略过)
打开cmd,执行python --version,可以看到安装成功
三、运行py脚本。
执行命令,安装所需依赖
pip install flask requests
复制proxy.py文件所在位置,然后执行
python c:\users\yws1\desktop\proxy.py
浏览器打开 http://192.168.28.45:8080/(自己电脑ip地址,不知道的ipconfig查一下)或者http://localhost:8080/ 或http://127.0.0.1:8080/
能打开,说明http服务已经成功配置好,
用a电脑访问[http://b电脑ip:8080],如果打不开,就把b电脑防火墙关掉。
到此这篇关于python做http代理请求的项目实践的文章就介绍到这了,更多相关python http代理请求内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论