Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试使用asp net core 3.1连接的HttpClient获取调用失败_C#_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# 尝试使用asp net core 3.1连接的HttpClient获取调用失败

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>(

我正在开发一个应用程序,它是asp.net core 3.1 mvc应用程序,使用.net core 2.1 api。在本地主机上,它工作正常,但当我发布我的web应用程序并尝试调用httpclient get call时,它会给我这个错误

这是我的启动代码

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);
        }