邮递员无法访问本地主机
Posted
技术标签:
【中文标题】邮递员无法访问本地主机【英文标题】:Postman can't reach localhost 【发布时间】:2018-08-14 07:04:14 【问题描述】:我在公司环境中,所以我必须使用代理来访问服务器。这在邮递员和浏览器中运行良好。我无法访问的是邮递员中的 localhost,但我可以在浏览器中访问 localhost。
我正在为 Linux 版本 6.0.9 运行 Postman。我尝试在打开全局代理和系统代理以及打开和未打开的情况下到达 localhost:9082/rest/myapi.... 和 127.0.0.1:9082/rest/myapi。在所有情况下,我都无法访问本地主机。
我得到的响应是来自代理服务器的错误页面!不知何故,电话会在网络上发出,而不是保留在我的机器上。
邮递员控制台:
我的请求标头是:
Cache-Control →no-cache
Connection →Keep-Alive
Content-Length →986
Content-Type →text/html; charset=utf-8
Pragma →no-cache
Proxy-Connection →Keep-Alive
我的响应标题是:
cache-control:"no-cache"
pragma:"no-cache"
content-type:"text/html; charset=utf-8"
proxy-connection:"Keep-Alive"
connection:"Keep-Alive"
content-length:"986"
我的响应正文是一个 html 页面。
如何拨打localhost
与邮递员一起工作的电话?
【问题讨论】:
这似乎已在 v.7.0.9 中解决。对于之前的版本,下面的Nayak's answer 对我有用。 Postman 7.2.1 正在工作,然后开始收到连接到 localhost 的“无法获得任何响应”错误。在设置中关闭“使用系统代理”,它又开始工作了。据我所知,我们没有使用代理。 【参考方案1】:我找到了一个临时解决方案:
在终端中,进入安装postman的目录并添加:
machine@dev:~/Documents/Postman$ export NO_PROXY=localhost,127.0.0.1
machine@dev:~/Documents/Postman$ ./Postman
这将使对 localhost 的调用正常工作。
我在 Windows 机器上发现了类似的问题here
【讨论】:
【参考方案2】:我也有同样的问题。对我有用的是:
打开文件->设置->代理
然后,启用代理并放置 127.0.0.1 : 80,如果您的网络服务器在 80 上运行。
在 git 线程中,他们说这是一个已知问题,所以希望它会尽快得到解决。
【讨论】:
到目前为止,此解决方案似乎是解决此问题的最简单方法。无需弄乱环境变量,无需打开可能的安全漏洞。 为我工作,但我希望我明白为什么。我注意到当我ping localhost
时,我得到的是 IPv6 地址 ::1
而不是 IPv4 地址 127.0.0.1
。可能相关?
@TBirkulosis 我不确定,如果没有代理的行为实际上不是错误。邮递员可能到达了错误的地方。我也没有找到合适的答案。【参考方案3】:
我在对本地 ASP.NET Core Web API 应用程序进行 HTTP 调用时遇到了类似的问题。更改代理设置并没有为我解决问题。
最后通过关闭文件>设置>常规> SSL证书验证来修复它
希望能帮助到那里的人。
【讨论】:
Postman 将从某些环境变量(http_proxy、HTTPS_PROXY 等)中获取代理设置,即使它们已从 UI 中关闭 这行得通,但Peter Matisko's answer below 可能更简单更好,即使到目前为止它获得的票数明显减少;它避免弄乱/禁用 SSL 验证。【参考方案4】:如果您在企业代理下,并且您在 localhost 中部署您的 web 应用程序,则无需像这样设置代理配置
http://username:password@corporateProxyServer:ServerPort in postman (Global Proxy Configuration).
由于应用程序部署在本地机器上,只需在设置 -> 全局代理配置中使用 localhost 配置:
proxy server : 127.0.0.1
port : 8300 (this is the port where the web application is running )
【讨论】:
这个对我有用。但似乎问题已在 v7.0.9 中得到解决【参考方案5】:作为问题here 提到的问题。你应该像这样编写一个简单的批处理文件:
set HTTP_PROXY=
set http_proxy=
set HTTPS_PROXY=
set https_proxy=
START %LOCALAPPDATA%\Postman\Update.exe --processStart "Postman.exe"
打开一个简单的文本文件,将其保存为“.bat”文件,然后运行它!
【讨论】:
终于解决了我的问题,谢谢!【参考方案6】:经过一整天的努力,这些步骤解决了这个问题: 1) HTTP_PROXY=proxy.company.com:port HTTPS_PROXY=proxy.company.com:port 到用户变量,而不是系统变量。确保外壳全部盖好。 2) 更新newtwork驱动,打开Windows Defender......确保你没有看到这里没有红色。
【讨论】:
【参考方案7】:我无法从邮递员向运行 Couchbase 服务器的 docker 容器发出任何调用。非常令人沮丧。原来我已将代理设置配置为一些已被长期删除的 aws 实例。
转到设置并删除代理设置,它在 localhost/127.0.0.1/mac 笔记本电脑 eno IP addr 或 0.0.0.0 上就像一个魅力
【讨论】:
【参考方案8】:就我而言,我使用的是django-tenants
,并且必须在etc/hosts
中为租户添加域才能使其在本地主机上运行。我输入的127.0.0.1
现在看起来像
127.0.0.1 localhost test.localhost
【讨论】:
【参考方案9】:我通过关闭 Postman 的系统代理解决了这个问题。
打开文件->设置->代理
然后关闭使用系统代理
【讨论】:
当我在找到有效的答案之前尝试了所有其他答案时,这是多么令人沮丧。似乎有很多方法使它无法正常工作,而几乎没有迹象表明问题出在哪里。 @DaveDev 我可以为您提供的最接近的东西应该是公司代理。您可能还需要一些网络智慧才能发现这一点。但是我的朋友,我在睡觉前还有待完成的工作:)【参考方案10】:@Menuka Ishan 答案是正确的。但是在 mac 中,只有当我们更改关闭代理时才会起作用。您需要关闭 SSL 证书验证也需要禁用。
【讨论】:
请不要关闭 SSL 验证。这可能是一个巨大的安全风险。 @Dharman。但是,如果我没有关闭 SSL 验证后,人就无法工作。还有其他方法吗? .NET Core Web API 教程也将引导您关闭此选项:请参阅 => docs.microsoft.com/en-us/aspnet/core/tutorials/… 这对 localhost 开发很有帮助【参考方案11】:我的问题是忘记选择环境。从您在图片中看到 No Environment 的下拉菜单中,选择您的环境名称。
【讨论】:
【参考方案12】:Menuka Ishan 的上述解决方案节省了我数小时的痛苦!我将Global Proxy Configuration
切换为ON
并将Proxy Server
更改为127.0.0.1
。将OFF
切换为Use System Proxy
。我已经在路径C:\Windows\System32\drivers\etc
下的hosts 文件中有条目127.0.0.1 localhost
。
【讨论】:
【参考方案13】:如果您的系统中有活动代理,请确保全局代理配置和使用系统代理关闭。为此,请转到 Postman 首选项 > 代理。您也可以尝试在不输入 localhost 的情况下在邮递员中发送请求(例如 :8080/send)
【讨论】:
【参考方案14】:我想我也找到了一个完美的解决方案。 首先打开全局代理配置,添加本地机器IP 127.0.0.1,然后在旁路中添加localhost。 同时关闭 SSL 验证。 它对我有用
【讨论】:
【参考方案15】:我的问题是我设置了一个无效的标头令牌,它给了我错误
错误:标头名称必须是有效的 HTTP 令牌 ["Accept"] 警告:此请求未完全发送,可能没有所有必需的系统标头
只需检查您的标题。
【讨论】:
【参考方案16】:为此添加另一个潜在答案,供人们在此处尝试其他想法后检查。
我能够通过检查 Postman 控制台(查看 -> 显示 Postman 控制台)然后检查请求中的错误(在我的情况下是因为我在身份验证令牌上有换行符)来解决我自己的问题。
【讨论】:
【参考方案17】:就我而言,我必须在 localhost
前面加上 https://
【讨论】:
【参考方案18】:在开发基本 .NET Core (3.1) Web API(在 Ubuntu Linux 上)时尝试通过 PostMan 获取 https://localhost:5001/WeatherForecast 我得到了错误:
无法得到任何响应连接到时出错 https://localhost:5001/WeatherForecast.
一开始我并没有注意到实际的解决方案,但是如果您检查图像中突出显示的文本,您会看到它。
可以看到 PostMan 中默认开启了该选项:
我关闭了SSL证书验证并再次尝试,它成功了。
【讨论】:
【参考方案19】:我也遇到了同样的问题,但诀窍是我实现了堆栈中前面所述的两种方法。 首先,我关闭 邮递员代理,如下图所示。
点击设置 -> 代理
然后关闭关闭SSL证书验证检查按钮。
点击设置 -> 常规
然后尝试访问我的本地服务器,终于成功了。
【讨论】:
【参考方案20】:这对我有用,我禁用了标题中的参数主机。
HOST Disabled
【讨论】:
【参考方案21】:如果有人正在寻找 WooCommerce 本地安装解决方案,请按照以下步骤进行操作:
-
转到 Wordpress 管理 > WooCommerce > 设置 > 高级
创建新的 API 密钥,为其命名
将消费者密钥和消费者秘密复制到
你的文本编辑器
打开邮递员
创建新连接 设置 URL
测试(GET):http://mylocalsite/wp-json/wc/v3/orders(更改
“mylocalsite”到你的)
点击授权标签
现在是主要变化:虽然在 WC Rest 文档中,它说要使用“基本身份验证” - 它不会工作。因为通常你的本地主机是 HTTP
而不是 HTTPS。因此,“基本身份验证”与我们的案例无关。
您需要将授权更改为 OAuth 1.0
分别设置消费者密钥和消费者秘密,如在 Woocommerce 中显示的那样
点击“发送” - 现在应该可以使用了
如果仍有问题,请逐一尝试以下方法:
-
文件 > 设置 > 关闭 SSL 验证
文件 > 设置 > 关闭“自动跟踪重定向”
【讨论】:
以上是关于邮递员无法访问本地主机的主要内容,如果未能解决你的问题,请参考以下文章