为啥我的 web api 在 C# 中使用 https 而不是 http

Posted

技术标签:

【中文标题】为啥我的 web api 在 C# 中使用 https 而不是 http【英文标题】:why my web api is working on https not http in C#为什么我的 web api 在 C# 中使用 https 而不是 http 【发布时间】:2021-03-30 08:28:44 【问题描述】:

我在 .net 框架中创建了一个项目,它在 https://localhost:44309/api/office 上运行良好,但在 http://localhost:44309/api/office 上出现以下错误

GET http://localhost:44309/api/Office
Error: read ECONNRESET

【问题讨论】:

你不能在同一个端口上做 HTTPS 和 HTTP。您需要将 Web 服务器配置为使用不同的 HTTP 端口。您会收到错误消息,因为浏览器不需要协商安全连接。 HTTP 和 HTTPS 不在同一个端口上提供服务。 在 Visual Studio 中,443nn 端口用于 SSL。将有另一个非 SSL 端口,通常类似于 56614,您可以在项目属性 > 调试中找到。 你不应该使用 HTTP !!!如果服务器是 HTTPS,那么应用程序应该是安全的并且只使用 HTTPS。 这里可能令人困惑的是,在线您通常可以将 http 换成 https 而无需更改任何其他内容;这是因为对于这些站点,http 和 https 是在默认端口上配置的,因此浏览器本身将根据方案转到端口 80 或端口 443。但是您在 url 中指定了一个手动端口,因此您需要指定正确的 https 端口。 【参考方案1】:

如果您从 Visual Studio 运行,您应该会看到 http 和 https 的各种 URL。它们不能在同一个端口上。单击您的项目并检查项目属性部分,如下面的快照所示。

Snapshot

【讨论】:

以上是关于为啥我的 web api 在 C# 中使用 https 而不是 http的主要内容,如果未能解决你的问题,请参考以下文章

C# Web Api 2 PUT 和 POST 请求“不支持”

为啥我的数据没有在 Flutter for web 中使用 api 从实时数据库中检索

如何使用 c# 使用 httpwebrequest 从 json api 获取数据?

为啥我的简单 ajax 帖子没有调用 c# web 方法?

在 C# 中调用 web api

Adwords API C#:将 web.config 与类库一起使用