您的功能请求是否与问题相关?请描述。
作为一个electron的用户,我希望能够拦截http请求并可选地发送响应回来。如果我不选择发送响应,我希望它由chrome的网络堆栈处理。
描述您希望实现的解决方案
我希望添加一个新的协议,如interceptFooProtocol,它具有以下特点:
- 在请求任务的各个点调用处理程序(在请求开始时、在构建了头之后、在接收到头之后等)
- 允许为任务提供可选的http响应
- 如果没有提供http响应,则委托给chrome的
URLRequestHttpJob
描述您考虑过的替代方案 - 使用
interceptStreamProtocol
并使用node网络堆栈 - 这个问题在于
URLRequestHttpJob
在幕后做了很多工作,虽然用js重写它是可能的,但需要很多工作。除了其他事情之外,它还会添加头、管理cookies和检查ssl证书的固定。 - 另一个问题是,由于interceptStreamProtocol出现bug时仍然需要通过electron进行修复,而不是调用
URLRequestHttpJob
并知道它将像chrome一样被处理。 - 使用WebRequest进行拦截
- 据我所知,这只能让你检查请求或取消它,而不能提供http响应。
附加上下文 - 这将有助于实现offline support to nativefier。
- 我也一直在与Ryan Patterson讨论这个问题,他正在研究chronicler(cc @CGamesPlay)
4条答案
按热度按时间7rtdyuoh1#
如果大家对这个的外观达成一致意见,我将乐意尝试制作一个PR。
polkgigr2#
+1
s5a0g9ez3#
这可能是重复的问题?
0x6upsns4#
我也这么认为。