簡體   English   中英

HTTP 連接問題

[英]Problem with HTTP Connections

我有一個大問題(對不起我的英語不好)。 我直接附上我的代碼:

public bool isServerOnline()
{
        Boolean ret = false;

        try
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL);
            req.Method = "HEAD";
            req.KeepAlive = false;
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            if (resp.StatusCode == HttpStatusCode.OK)
            {
                // HTTP = 200 - Internet connection available, server online
                ret = true;
            }
            resp.Close();
            return ret;

        }
        catch (WebException we)
        {
            // Exception - connection not available
            Log.e("InternetUtils - isServerOnline - " + we.Status);
            return false;
        }
}

這個 function 被許多線程調用並將 HEAD 請求發送到 Tomcat 服務器。 因此,此方法為我執行的每個請求打開一個連接,並且在 10 分鍾內我有 100 個連接處於活動狀態。

我如何解決這個問題?

您可以做兩件事來正確管理連接:

第一的:

初始化

HttpWebResponse resp;

在 try 語句之前。

然后在 finally 語句中關閉

finally
{ 
    if (resp != null) 
    {
        resp.Close();
    }
}

第二:

嘗試使用“using()”子句管理您的連接

using(var a = new connection())
{
    //Your code
}

Tomcat 管理器顯示會話,未激活 TCP 連接。 每個請求都可能啟動一個新的 session,但活動的 session 不一定表示活動的 TCP 連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM