HttpClient BlazorWASM

HttpClient BlazorWASM

我有一个 BlazorWASM 单页应用程序,在这个应用程序中,我从不同的 API 服务器获取了一些数据,这些 API 填充了一些表。

@inject HttpClient Http

远程外部API由应用API调用,没问题。

示例:

var x = await Http.GetFromJsonAsync<APIStatus?>($"api/ExternalStatus/{ExternalId}");
/// process x...

但我需要调用一些仅在客户端范围内可见的本地 API。

示例: http://localhost:8085,或http://mylocalserverapi.mydomain.local:8091, 我认为像这样调用一些内部 url 是行不通的:

//This url is local
string url = "http://192.168.1.40:3812";
var x = await Http.GetFromJsonAsync<LocalApiStatus?>(url + $"/summary");

我认为需要在 cors 和/或其他东西中配置一些才能让它工作,而且我看到 cors 在服务器项目中,而不是客户端项目中。这让我很困惑。

谁能帮我解释一下怎么做?

请注意,本地 API 可以是:http://https:// 证书无效或 https:// 证书有效。

即使您共享在开发模式下工作的代码,您认为它在生产模式下也能工作吗? (示例:允许所有模式下的 CORS 配置)

谢谢大家!

注入的 Http 客户端已经连接到您的主机。您不能使用它与其他服务器通信

必须为新服务器创建一个新的 HTTP 客户端

  var cl = new HttpClient {
        BaseAddress = new Uri("http://192.168.1.40:3812") 
   };

   var x = await cl.GetFromJsonAsync<LocalApiStatus?>("/summary");