C# NamedClient未按预期提供响应

C# NamedClient未按预期提供响应,c#,asp.net,asp.net-core,asp.net-web-api,.net-core,C#,Asp.net,Asp.net Core,Asp.net Web Api,.net Core,我正在使用命名客户端,并将客户端创建为- services.AddHttpClient("Clientname", client => { client.BaseAddress = new Uri(baseurl); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Tokenvalue); }); 在控制器中: public async Task<

我正在使用
命名客户端
,并将客户端创建为-

services.AddHttpClient("Clientname", client =>
{
    client.BaseAddress = new Uri(baseurl);
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Tokenvalue);
});
在控制器中:

public async Task<IActionResult> getApps()
{
    var request = new HttpRequestMessage(HttpMethod.Get, "apps");
    var client = _clientFactory.CreateClient("Clientname");
    var response = await client.SendAsync(request);

    return Ok(response);
}
但是,当我在没有命名客户机的情况下实现它时,它可以工作,而没有使用
Flurl的命名客户机

public async Task<IActionResult> getApps()
{
    var ul = Path.Combine(baseurl, "apps");

    return Ok(await ul.WithOAuthBearerToken(TokenValue).GetJsonAsync());
}
公共异步任务getApps() { var ul=Path.Combine(baseurl,“apps”); 返回Ok(等待ul.withOAuthBeareToken(TokenValue.GetJsonAsync()); }
外部API的预期响应是JSON格式的应用程序列表


我不知道我在做什么,有人能给我指出正确的方向吗?

看起来你序列化了
HttpResponseMessage
,而不是从中获取实际的JSON响应体。您在第二个场景中使用的第三方库可能是通过
GetJsonAsync()
调用实现的,这就是为什么它在这种情况下工作的原因

在任何情况下,您都需要执行以下操作:

var json = await response.Content.ReadAsStringAsync();

这当然会给你身体一根绳子。如果您想将JSON字符串反序列化为一个对象,您可以通过
JsonConvert.DeserializeObject
运行该值,或者使用
ReadAsAsync

看起来您可以序列化
HttpResponseMessage
而不是从中获取实际的JSON响应体。您在第二个场景中使用的第三方库可能是通过
GetJsonAsync()
调用实现的,这就是为什么它在这种情况下工作的原因

在任何情况下,您都需要执行以下操作:

var json = await response.Content.ReadAsStringAsync();
这当然会给你身体一根绳子。如果要将JSON字符串反序列化为对象,可以通过
JsonConvert.DeserializeObject
运行该值,或者改用
ReadAsAsync