c# - 当前上下文中不存在 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;
}
}
解决方案
尝试这个:
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
)
此外,我建议您创建一个使用该服务的辅助服务(层/存储库/提供者),因为这不是控制器的责任。
推荐阅读
- python-3.x - plt.axvline 标签超出绘图问题的限制
- android - 在插件中使用 AAssetManager_fromJava 不直接从 Java VM 调用(从 Unity 调用)
- c++ - 无法在 clang Linux 中分配非静态成员函数,但我可以在 Visual Studio Windows 中分配?
- javascript - React.PureComponent 呈现列表组件中的所有项目
- nginx - Nginx 中的重定向语法问题
- java - 如何杀死一个线程或停止一个线程?
- acumatica - 如何为只能访问一个分支的用户返回其他分支的数据?
- autoencoder - 两个非常相似但不同的数据样本集是否有可能在自动编码器中产生完全相同的编码
- css - 在phpmailer html中将div放在div旁边
- swift - 默认应用程序包中未找到自定义 Metal Kernel 函数