首页 > 解决方案 > 当前上下文中不存在 Https

问题描述

我在将 API 数据输入我的 Web 应用程序时遇到问题,并且 Visual Studio 无法识别 https。这是一个 ASP.net MVC 项目。只是想知道是否有更好的方法来做到这一点。

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using pdrake.Models.MoviesData;
using System;
using System.Collections.Generic;
using System.Web.Http.Properties;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;

namespace pdrake.Controllers.MoviesController
{
    [Route("api/[controller]")]
    [ApiController]
    public class MovieApiController : ControllerBase
    {
        HttpClient baseUrl = https://api.themoviedb.org/3/discover/movie?api_key=My_Key;
        public HttpClient GetMovies()
        {
            return baseUrl + &language=en-US&sort_by=popularity.desc&include_video=true&page=1;
        }
}

标签: c#asp.net-mvchttps

解决方案


尝试这个:

using Microsoft.AspNetCore.Mvc;
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace pdrake.Controllers.MoviesController
{
    [Route("api/[controller]")]
    [ApiController]
    public class MovieApiController : ControllerBase
    {
        [HttpGet]
        public async Task<IActionResult> GetMovies()
        {
            string bs = "https://api.themoviedb.org/3/discover/movie?api_key=My_Key";
            string url = bs + "&language=en-US&sort_by=popularity.desc&include_video=true&page=1";

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) " +
                                                    "AppleWebKit/537.36 (KHTML, like Gecko) " +
                                                    "Chrome/58.0.3029.110 Safari/537.36");

                var result = await httpClient.GetStringAsync(new Uri(url));

                return Ok(result);
            }
        }
    }
}

结果UnAuthorised 401是正常的 ( you should provide valid credentials in the header)

结果

此外,我建议您创建一个使用该服务的辅助服务(层/存储库/提供者),因为这不是控制器的责任。


推荐阅读