C# 尝试使用asp net core 3.1连接的HttpClient获取调用失败
我正在开发一个应用程序,它是asp.net core 3.1 mvc应用程序,使用.net core 2.1 api。在本地主机上,它工作正常,但当我发布我的web应用程序并尝试调用httpclient get call时,它会给我这个错误 这是我的启动代码C# 尝试使用asp net core 3.1连接的HttpClient获取调用失败,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我正在开发一个应用程序,它是asp.net core 3.1 mvc应用程序,使用.net core 2.1 api。在本地主机上,它工作正常,但当我发布我的web应用程序并尝试调用httpclient get call时,它会给我这个错误 这是我的启动代码 public void ConfigureServices(IServiceCollection services) { services.Configure<FormOptions>(
public void ConfigureServices(IServiceCollection services)
{
services.Configure<FormOptions>(options =>
{
options.ValueLengthLimit = int.MaxValue;
options.MultipartBodyLengthLimit = long.MaxValue; // <-- ! long.MaxValue
options.MultipartBoundaryLengthLimit = int.MaxValue;
options.MultipartHeadersCountLimit = int.MaxValue;
options.MultipartHeadersLengthLimit = int.MaxValue;
});
services.AddControllersWithViews();
services
.AddHttpClient<ApiClient>(opts =>
{
opts.BaseAddress = new Uri("http://falcon****-***-******.com"); /// --- base server url which my apiclient can hit.
});
services.Configure<SettingDTO>(Configuration.GetSection("AppSettings"));
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login";
});
ResolverService.RegisterModelServices(services, Configuration);
}
这是我的api客户机方法
private async Task<T> GetAsync<T>(Uri requestUrl, string urlParams)
{
var response = await _httpClient.GetAsync($"{requestUrl}?{urlParams}", HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
var resp = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(resp);
}
private async Task GetAsync(Uri请求URL、字符串URL参数)
{
var response=wait(httpClient.GetAsync($“{requestUrl}?{urlParams}”,HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
var resp=await response.Content.ReadAsStringAsync();
返回JsonConvert.DeserializeObject(resp);
}
我不知道我哪里做错了,但当我发布它时,它不起作用。在本地,它工作正常。服务器需要HTTP或HTTPS(安全)。现在的Mosrt服务器只允许安全连接,您的URL是http(不是https)。是的,基本上我使用的是http而不是https。如果您不使用https,启用SSL必须为false。请参阅:我是否必须从api应用程序或使用api的web应用程序禁用ssl?我是否可以使用web配置禁用ssl,因为我们对这两个应用程序都使用smarterasp。APi应用程序和web应用程序
private async Task<T> GetAsync<T>(Uri requestUrl, string urlParams)
{
var response = await _httpClient.GetAsync($"{requestUrl}?{urlParams}", HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
var resp = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(resp);
}