curl 工作时,无法在 Windows 10 上通过 python 连接到本地主机服务器

问题描述

我有一个简单的 python 服务器代码,它公开了一个版本端点。 通过 chrome、curl、python 通过请求访问它对我来说在 Windows 上工作正常。

当我的同事在她的机器上运行相同的代码时,服务器在她的本地 Windows 机器上运行正常,并且可以通过 chrome 和 curl 从 Windows 终端访问她的本地主机。但是,python 访问会给出 403 - Forbidden。

详情:

curl http://localhost:8888/api/v1.0/version

StatusCode        : 200

StatusDescription : OK

但是,在 Windows 终端上通过 python 访问它会得到 403 Forbidden。 例如:

>python3
>>>import requests

>>> requests.get('http://localhost:8888/api/v1.0/version')

<Response [403]>

谷歌搜索 Windows 防火墙规则以了解为什么 localhost 被禁止,我看到 Windows 有一个基于每个程序的防火墙规则概念。

运行:

netsh advfirewall firewall show rule name=all

显示windows终端有如下规则(这和我在我的机器上看到的完全一样):

Rule Name:                            Windows Terminal
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            Out
Profiles:                             Domain,Private,Public
Grouping:                             Windows Terminal
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             Any
Edge traversal:                       No
Action:                               Allow

在终端中调用 python 是否使用具有自己的防火墙规则集的不同程序? 我在防火墙表中找不到明确列出的 python。

为什么python访问本地主机显示禁止? 我对 Windows 不太熟悉 - 不确定是否涉及防火墙规则以外的其他内容?任何指点表示赞赏!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)