如何在.net core 2.1 Angular模板中的邮递员中测试API调用?

时间:2018-09-05 21:08:45

标签: api postman asp.net-core-2.1

我似乎无法连接到Postman中的任何控制器方法。它确实可以在角度应用程序中工作。该项目是作为文档建议here

生成的

此控制器方法随模板一起提供:

[Route("api/[controller]")]
public class SampleDataController : Controller
{
    private static string[] Summaries = new[]
    {
        "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
    };

    [HttpGet("[action]")]
    public IEnumerable<WeatherForecast> WeatherForecasts()
    {
        var rng = new Random();
        return Enumerable.Range(1, 5).Select(index => new WeatherForecast
        {
            DateFormatted = DateTime.Now.AddDays(index).ToString("d"),
            TemperatureC = rng.Next(-20, 55),
            Summary = Summaries[rng.Next(Summaries.Length)]
        });
    }

    public class WeatherForecast
    {
        public string DateFormatted { get; set; }
        public int TemperatureC { get; set; }
        public string Summary { get; set; }

        public int TemperatureF
        {
            get
            {
                return 32 + (int)(TemperatureC / 0.5556);
            }
        }
    }
}

在Startup.cs中,我将路由配置如下:

   app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller}/{action=Index}/{id?}");
        });

        app.UseSpa(spa =>
        {
            // To learn more about options for serving an Angular SPA from ASP.NET Core,
            // see https://go.microsoft.com/fwlink/?linkid=864501

            spa.Options.SourcePath = "ClientApp";

            if (env.IsDevelopment())
            {
                //delay timeout 2 min to avoid timeout
                spa.Options.StartupTimeout = new TimeSpan(0, 5, 0);
                spa.UseAngularCliServer(npmScript: "start");
            }
        });

当我运行该应用程序并尝试在Postman中进行获取请求时,没有任何响应。我在打电话:

https://localhost:44389/api/sampledata/weatherforecasts

我认为这可能是端口问题,但这是应用程序在其上运行的端口,但我可能会丢失某些东西

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我有同样的问题。 在 Startup.cs 中,我们评论删除此行。

app.UseHttpsRedirection();

然后邮递员按预期方式工作。

答案 1 :(得分:0)

.Net Core 3.1 Angular模板存在相同的问题,但是如果我从url中删除api,它对我有用。

例如:https:// localhost:44389 / sampledata / weatherforecasts