当前位置: 首页 > 知识库问答 >
问题:

HttpClient连接状态在使用一段时间后仍保持在TIME_WAIT中,导致套接字异常

孟俊晖
2023-03-14

我们正在使用HttpClient访问托管在另一台服务器上的WebAPI。我们有一个MVC5应用程序,它从WebAPIWindows server 2012 R2和IIS 8.5中获取数据

下面是从webapi获取数据的代码

//creating static instance of http client
private static HttpClient client = new HttpClient();

//static method to add common header
static ApiCall()
{
   client.DefaultRequestHeaders.Add("Authorization", 
                 string.Format("Value {0}", AppSettings.ApiSecurityKey));
   client.DefaultRequestHeaders.ConnectionClose = true;
}

//finally posting data to the api
//objprop contains the data and other setting
string url = "apiurl";
var postContent = new StringContent(objprop.DataForPost, 
      System.Text.Encoding.UTF8, objprop.ContentType);
response = client.PostAsync(url, postContent).Result;

共有1个答案

郎祯
2023-03-14

您对httpclient的用法是正确的;尽管正如一些人所评论的那样,使用async更好,但它不是错误的原因。

time_wait是TCP/IP连接的强制阶段;建立连接后,启动连接关闭的端将进入此状态一段预配置的时间。

TCP/IP有一个有限的端口池用于连接进出。

    null

同时执行这两项操作将使最大连接速率从136个连接/秒增加到约2150个。

 类似资料:
  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 我正在尝试使用javapns库发送ios推送通知。代码在java 6上运行良好,但在java 7上不起作用。我正试图用java代码在ssl套接字上编写这段代码。插座getOutputStream()。写入(字节);但有以下例外:- 2015-09-24 02:01:17330[列表模式下的JavaPNS分组通知线程]错误JavaPNS。通知。PushNotificationManager(Push

  • 我编写了简单的服务器/客户端程序,其中客户端将一些硬编码数据以小块形式发送给服务器程序,服务器程序正在等待数据,以便将其打印到终端。在客户端,我在循环中调用send(),同时有更多的数据要发送,而在服务器上,我使用read()执行同样的操作,即返回的字节数为 如果我在完成发送后专门在客户端的套接字上调用close(),那么这个示例非常有效,但如果我不这样做,服务器将不会实际退出read()循环,直

  • 我在android中保持套接字连接有麻烦。 我在应用程序中使用Socket.IO客户端java库。 屏幕打开时保持插座连接。 但是,如果屏幕关闭,套接字会因ping超时而断开连接。 我该如何解决这个问题? 我像这样打开连接。 这是我的服务器端代码 ping间隔为25秒,超时为60秒。 当android屏幕关闭时,客户端不适用于。其他事件正常工作。 服务器与日志断开连接(ping超时)。

  • 我编写了一些逻辑,同时表示与exchange的近200个websocet连接。我使用第三方api,它基于org.eclipse.jetty.webSocket.api。我有一个我必须重写的方法。 我在stackoverflow上找到了这个问题,但我看不到清晰的答案。请帮忙,提前谢谢。

  • 我正在创建一个客户端服务器应用程序。服务器已经设计好,等待从客户端连接。现在在客户机部分中,我希望在应用程序的整个生命周期中保持连接活动,并且只有当主客户机应用程序关闭或关闭或者服务器关闭它时,连接才会关闭。 在处理程序中我有: