“无法得到任何回应”;使用带有子域的邮差时的响应

我正在使用邮差测试我有一个API,当请求不包含子域时,一切都很好,然而,当我添加一个子域到URL时,我得到了这个响应。

无法得到任何回应

有一个错误连接到http://subdomain.localhost:port/api/

为什么会发生这种情况:

服务器无法发送响应:请确保后端工作正常 适当的< / p >

自签名SSL证书被阻止:通过关闭来修复此问题 “SSL证书验证”在设置>一般

Proxy配置错误确保Proxy配置正确 在设置>代理

请求超时:在“设置”中修改请求超时时间

如果我从邮差复制相同的URL并将其粘贴到浏览器中,我得到了一个正确的响应,是否有某种配置,我应该做邮差工作与子域?

417319 次浏览

当得到以下错误, enter image description here < / p >

您需要完成以下操作。

< p >步骤1: 在邮差中,单击扳手图标,转到设置,然后转到代理选项卡。< / p >

步骤1扳手图标>设置在代理标签 < / >

< p >步骤2: 创建一个自定义代理。这本文将解释如何创建自定义代理。 创建自定义代理后,请确保将代理切换按钮关闭。我把61095作为代理服务器,它为我工作

enter image description here

第三步:

成功

Success

首先进入邮递员中的设置:

.

  1. 一般标签中的SSL证书验证:

.

  1. 代理标签中的全局代理配置使用系统代理:

.

  1. 使请求超时为0 (0)

.

配置Apache:

如果上述更改导致404响应,则继续阅读;-)

本地托管站点的用户(如XAMP和/或WAMP),可能能够使用https://前缀地址访问他们的虚拟站点,但这是一个谎言,并且真正启用SSL(对于每个虚拟站点),配置Apache如下:

  • 在你喜欢的文本编辑器中打开httpd-vhosts.conf文件(从Apacheconf/extras目录中)。

  • 更改虚拟站点的设置,如下所示:

<VirtualHost *:80 *:443>
ServerName my-site.local
ServerAlias *.my-site.local
DocumentRoot "C:\xampp\htdocs\my-project\public"


SSLEngine on
SSLCertificateFile "path/to/my-generated.cert"
SSLCertificateKeyFile "path/to/my-generated.key"


SetEnv APPLICATION_ENV "development"


<Directory "C:\xampp\htdocs\my-project\public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow, deny
Allow from all
</Directory>
</VirtualHost>

但是,当然,生成一个伪ssl证书,并更改所有文件路径,例如从"path/to/my-generated.cert"转换成真实的文件地址。

  • 最后,通过在浏览器中访问本端站点进行测试,但使用http://(不带S)前缀地址;Apache现在应该给出如下错误:
Bad Request


Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

对我来说,我在节点服务器中调用的路由没有返回任何东西。添加

    return res.status(200).json({
message: 'success!',
response: 'success!'
});//

我打电话的路线解决了这个问题。

如果以上所有方法都不起作用,请检查您的环境变量,并确保以下环境没有设置。如果这些已设置,且任何其他应用程序都不需要,则删除它们。

HTTP_PROXY
HTTPS_PROXY

参考链接

对我来说是http://localhost而不是https://localhost

您提到您使用的是CER证书。

根据邮差证书页面。

在CRT文件字段中选择客户端证书文件。目前,我们只支持CRT格式。对其他格式(如PFX)的支持很快就会到来。

扩展名CER, CRT不会让证书成为那种类型的证书但是,这些是例外的扩展名。

CER是一个二进制形式的X.509证书,DER编码。

阴极射线管是一个二进制X.509证书,封装在文本(base-64)编码中。

通过OpenSSL可以将CER文件转换为CRT文件。我的运气不太好,但它看起来是这样的。

openssl x509 -inform PEM -in证书。输出certificate.crt

openssl x509 -通知DER -in证书。输出certificate.crt

你好,这个问题为我解决了。

setting ->general -> ms超时时间= 0

我也有同样的问题。这是由“Authorization”报头值末尾的换行符引起的,我通过复制粘贴承载令牌手动设置了换行符(意外地在其末尾包含换行符)。

在所有上述方法(如关闭SSL证书验证,只打开使用系统代理和删除HTTP_PROXY和HTTPS_PROXY系统环境变量)之后,它起作用了。

注意:必须重新启动邮递员应用程序,因为环境变量被改变了。

取消代理和SSL证书验证对我不起作用。

不设置PROXY环境变量就成功了。

export http_proxy=
export ftp_proxy=
export https_proxy=

更改到安装了Postman的目录,然后:

./Postman

邮递员Linux版本6.7.1 - Ubuntu 18.04 - Linux 4.15.0-43-generic / x64

我也遇到了同样的问题,我偶然用http://127.0.0.1替换了http://localhost,一切都正常工作。

我的etc/hostslocalhosthttps://localhost请求有适当的条目,总是按预期工作。

我不知道为什么用127.0.0.1改变localhosthttp解决了这个问题。

对我来说,有效的方法是将127.0.0.1 subdomain.localhost添加到主机文件中。在OSX上是/etc/hosts.不知道为什么这是必要的,因为我可以从chrome到达子域。

这些解决方案对我都没用。Postman没有向服务器发送任何请求,因为Postman没有找到主机。因此,如果您将/etc/hosts修改为 127.0.0.1 localhost 127.0.0.1 subdomain.localhost < / p >

这对我很管用。

我想出了这个解决方案

  1. 在邮递员去设置——>代理
  2. 关闭全局代理配置
  3. 在使用系统代理 李enter image description here < / p > < / >

  4. 进入windows主机配置文件 “C: \ Windows \ System32系统\司机\等\主机”< / p > < /李>

  5. 以管理员模式打开该文件
  6. 将子域添加到hosts文件 李enter image description here < / >

对我来说,问题是Content-Length太大了。我将正文的内容放在notepad++中,并计算字符数,并将该数字放在PostMan中,然后它就工作了。

我知道这并不能直接回答为什么该操作的子域不能工作,但它可能会帮助某些人。

如果你在发送请求时从邮递员原生应用程序得到“无法得到任何响应”的消息,打开邮差控制台(查看>显示邮差控制台),重新发送请求,并在控制台中检查任何错误日志。

感谢numaanashraf

隐形空间

在我的例子中,它是邮递员不认识的无形空间,上面的文本字符串呈现为邮递员中没有空格。 我禁用了SSL证书验证和系统代理,甚至尝试了邮递员chrome扩展(即将被废弃),但当我下载并尝试失眠时,它在这些空格所在的地方给出了那些红点,必须在复制/粘贴

期间到达那里

在我的例子中,MVC不能序列化结果(我不小心使用了模型而不是DTO)。我调试到传递一个简单的字符串,这是有效的。一旦我修复了序列化,它就全部出现了。

  1. 在邮递员去设置——>代理
  2. 关闭全局代理配置

enter image description here

在我的情况下,(公司)代理使用自签名SSL证书,邮差不喜欢。我通过激活发现了它 视图->显示邮差控制台 并重试请求。然后控制台显示证书错误。在 设置- >一般 我禁用

. SSL证书验证

对于任何使用真正的域而不是本地主机遇到此问题且无法使用以上任何一项解决方案解决此问题的人。

尝试将网络DNS (WIFI或局域网)更改为其他DNS。对我来说,我使用谷歌DNS 8.8.8.8, 8.8.4.4,它工作!

enter image description here

如果您使用asp.net core 2应用程序,解决方案非常简单。里面的ConfigureServices方法里面的startup.cs文件全部这一行

services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddJsonOptions(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);

我的解决方案,因为我正在使用已弃用的Postman扩展Chrome,以解决这个问题,我必须:

  1. 使用Chrome浏览器本身调用一些GET请求。
  2. 等待错误页面“您的连接不是私人的”出现。
  3. 点击ADVANCED,然后点击proceed to [url] (unsafe)链接。

在此之后,通过扩展本身的请求应该可以工作。

在我的例子中,它是一个配置错误的子网。ELB的2个子网中只有一个正常工作。

我通过做nslookup并试图直接卷曲返回的ip来计算出这一点。只有一个成功了。 邮差一直在用那个配置错误的。< / p >

我也有同样的问题。

结果我的超时时间设置得太低了。我把它改成了30毫秒,以为是30秒。我把它调回0,它又开始工作了。

我得到了同样的“无法得到任何响应”的问题,因为错误的参数在头。我通过从头中删除参数HOST来修复它。

PS:不幸的是,我被要求安装其他软件来获得这个信息。从Postman那里得到这个错误消息,而不是得到一些无意义的信息,这应该很好。

在我的例子中,我忘记在“CURRENT value”字段中设置变量的值。

你只需要关闭SSL来发送你的请求。

代理和其他带有各种错误。

在我的案例中,问题是对于UAT环境,API URL将以http而不是https开始。 此外,后端为http和https分配不同的端口

例如,

http://10.12.12.31:2001/api/example。-对我来说是正确的

https://10.12.12.31:2002/api/example。-对我来说是错的

因为我正在使用https和2002端口来击中UAT环境。 因此,我在邮差中得到无法得到任何回应错误

我刚刚经历了这个错误。对我来说,这条路太长了。所以url给了我这个错误在邮递员(假例子)

http://127.0.0.1:5000/api/batch/upload_import_deactivate_from_ready_folder

http://127.0.0.1:5000/api/batch/upld_impt_deac_ready_folder

工作得很好。

希望它能帮助那些无意中读到那么远的人……

当用户不小心复制/粘贴了用于构建URL的环境变量中的前导空格字符时,我们得到了这个令人困惑的错误:

例子:

The request's URL was set to: http://{URL}/blah


The {URL} environment variable had a value of " hostname" (**notice the leading space character**)

这导致邮差试图访问http:// hostname/blah,给出了这个错误信息。

我的问题是在标题中放置了错误的参数, 请求的参数是

Authorization: Token <string>

他一直在努力

Authorization Token: <string>

正常的http请求给出这个错误,但当我改变到https,然后开始工作。在本地主机运行时遇到的问题。