gpt4 book ai didi

c# - Webclient.DownloadString 崩溃

转载 作者:行者123 更新时间:2023-12-02 06:50:42 25 4
gpt4 key购买 nike

我有一个名为 GetIP 的函数,我在启动时和用户按下按钮时调用该函数。由于某种原因,它在启动时不会崩溃,但在使用按钮调用该函数时会崩溃。没有异常(exception),什么都不会卡住。

函数代码:

        private void GetIP()
{
string pageTitle = functions.GetWebPageTitle("http://xyro18.woelmuis.nl/index.php");
string[] ip = new string[2];
ip = pageTitle.Split('|');
currentIpLabel.Text = ip[0];
webIpLabel.Text = ip[1];
}

现在我发现它在我的 getWebPageTitle 函数中崩溃了

函数代码:

public static string GetWebPageTitle(string url)
{
// Create a request to the url
HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
request.Method = "HEAD";
// If the request wasn't an HTTP request (like a file), ignore it
if (request == null) return null;

// Use the user's credentials
request.UseDefaultCredentials = true;

// Obtain a response from the server, if there was an error, return nothing
HttpWebResponse response = null;
try { response = request.GetResponse() as HttpWebResponse; }
catch (WebException) { return null; }

// Regular expression for an HTML title
string regex = @"(?<=<title.*>)([\s\S]*)(?=</title>)";

// If the correct HTML header exists for HTML text, continue
if (new List<string>(response.Headers.AllKeys).Contains("Content-Type"))
if (response.Headers["Content-Type"].StartsWith("text/html"))
{
// Download the page
WebClient web = new WebClient();
web.UseDefaultCredentials = true;
string page = web.DownloadString(url);

// Extract the title
Regex ex = new Regex(regex, RegexOptions.IgnoreCase);
return ex.Match(page).Value.Trim();
}

// Not a valid HTML page
return null;
}

它在网络上崩溃。DownloadString

对于崩溃,我的意思是卡住并且不显示任何异常等。

最佳答案

嗯,我不能说我知道为什么它会卡住,但这里有一些可能有帮助的建议:

  • 调用 response.Close()当你完成它时(例如,当你从方法返回时)。
  • WebClient类实现了 IDisposable,因此您应该尝试使用 using 构造。
  • 不必每次为单个匹配创建一个新的 Regex 对象,而是使用 Regex 中的静态方法。类。
  • 尝试将 web.Proxy 属性设置为 null,以确保它不会尝试检测代理(默认情况下)。

关于c# - Webclient.DownloadString 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3828934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com