【问题标题】: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 的“无法获得任何响应”错误。在设置中关闭“使用系统代理”,它又开始工作了。据我所知,我们没有使用代理。

标签: proxy postman


【解决方案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 本地安装解决方案,请按照以下步骤进行操作:

                              1. 转到 Wordpress 管理 > WooCommerce > 设置 > 高级
                              2. 创建新的 API 密钥,为其命名
                              3. 将消费者密钥和消费者秘密复制到 你的文本编辑器
                              4. 打开邮递员
                              5. 创建新连接 设置 URL 测试(GET):http://mylocalsite/wp-json/wc/v3/orders(更改 “mylocalsite”到你的)
                              6. 点击授权标签
                              7. 现在是主要变化:虽然在 WC Rest 文档中,它说要使用“基本身份验证” - 它不会工作。因为通常你的本地主机是 HTTP 而不是 HTTPS。因此,“基本身份验证”与我们的案例无关。
                              8. 您需要将授权更改为 OAuth 1.0
                              9. 分别设置消费者密钥和消费者秘密,如在 Woocommerce 中显示的那样
                              10. 点击“发送” - 现在应该可以使用了

                              如果仍有问题,请逐一尝试以下方法:

                              1. 文件 > 设置 > 关闭 SSL 验证
                              2. 文件 > 设置 > 关闭“自动跟踪重定向”

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 2021-12-27
                                • 1970-01-01
                                • 2014-10-13
                                • 2017-09-29
                                • 1970-01-01
                                • 2021-07-19
                                • 2019-11-11
                                • 2016-10-15
                                相关资源
                                最近更新 更多