。Net Core 3中是否有等效于HttpClient的阻塞?

问题描述 投票:1回答:1

显然,.Net Core附带的HttpClient版本仅支持异步方法。

我曾希望能够编写一个简单的类似于套接字的应用程序,该应用程序在收到响应(或响应失败)之前一直阻塞。这样的东西(在Java中):

   // Open an HTTP client connection
   HttpGet request = new HttpGet("http://localhost:53561/api/Contacts");

   // add request headers
   request.addHeader(Content-Type", "application/json"); );

   // Connect to server
   String result = null;
   try (CloseableHttpResponse response = httpClient.execute(request)) {
     HttpEntity entity = response.getEntity();
     if (entity != null) {
        result = EntityUtils.toString(entity);
     }
   }

问:.Net Core中是否有一些不错的,阻塞性的API?还是异步现在是城里唯一的游戏?

c# .net-core dotnet-httpclient
1个回答
0
投票

您可以通过调用“结果”来阻止任何异步方法,例如:

HttpClient client = new HttpClient();
HttpResponseMessage response = client.PostAsJsonAsync(
            "api/products", product).Result;

但是,通常这不是一个好习惯,您应该使用async / await,这样就可以处理多个请求而不会阻塞调用线程。

© www.soinside.com 2019 - 2024. All rights reserved.