无法从.Core Web API获得任何信息

时间:2019-03-10 13:27:32

标签: c# api http asp.net-core webclient

所以,我遇到了下一个问题。

1)创建新的asp core 2.1应用程序(模板MVC)

2)添加新控制器:

[EnableCors]
public class ApiController : Controller
{
    public string Get(int id)
    {
        return $"You sent {id}";
    }
}

3)在Startup.cs中启用CORS:

app.UseCors(builder => builder.AllowAnyOrigin());

4)使用下面的代码创建classic / .net核心控制台应用程序:

class Program
    {
        static void Main(string[] args)
        {
            AsyncMethod();
        }

        private static async void AsyncMethod()
        {
            Task.Delay(5000).Wait();
            var http = new HttpClient();
            var url = "https://localhost:44353/api/get/4";
            var response = await http.GetAsync(url);
            var result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }

如果我直接在Main()中添加代码,或者甚至创建WPF / UWP / WinForms应用程序并将此代码粘贴到那里,仍然没有任何效果。 (经典和.core)控制台应用程序都只是退出调试而没有任何异常或消息,并且仅在我看到的调试窗口中

The program "[10340] dotnet.exe" ended with code 0 (0x0).
Program "[10340] dotnet.exe: Program Tracing" ended with code 0 (0x0).

使用WebClient替换此代码没有帮助。此外,对于经典的ASP MVC 4应用程序,此代码非常有效,因此我的控制台应用程序是正确的。但是,此代码不适用于.Core应用。

邮递员和RESTed客户端可以完美地看到api,并且可以毫无问题地发送请求。

我想念什么?

1 个答案:

答案 0 :(得分:0)

heroku cache article

如果有人会遇到这个问题。

1)删除行

app.UseCors(builder => builder.AllowAnyOrigin());

2)更换装饰器

[EnableCors]

使用

[EnableCors("*"]

3)确保您不尝试使用async void(感谢 Kirk Larkin )。