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

无法得到任何回应 连接http://subdomain.localhost:port/api/时出错 为什么会发生这种情况: 服务器无法发送响应:请确保后端正在工作 正确 自签名SSL证书被阻止:通过关闭来修复此问题 “SSL证书验证”设置>通用 Proxy配置错误确保Proxy配置正确 在“设置”中>代理 请求超时:在“设置”中修改请求超时时间

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


当前回答

我也有同样的问题。

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

其他回答

对我来说,问题是Content-Length太大了。我把主体的内容放在notepad++中,计数字符,然后把那个数字放在PostMan中,然后它就工作了。

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

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

根据邮差证书页面。

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

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

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

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

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

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

or

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

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

这对我很管用。

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

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

对于使用真实域而不是localhost遇到此问题的任何人,并且无法使用上述任何解决方案解决它。

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