AsyncHttpWebRequest(网页标题检索程序)

本文关键字:程序 检索 标题 网页 AsyncHttpWebRequest | 更新日期: 2023-09-27 18:18:36

我试图创建一个程序,将检索页面标题给定的url。我写的代码,当我不使用AsyncCallback工作,但当我使用AsyncCallback代码似乎不工作。

public void GetWebPageTitle(string URL)
{
    // make request for web page
    HttpWebRequest myWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
    myWebRequest.Method = "GET";
    myWebRequest.BeginGetResponse(new AsyncCallback(FinishWebRequest), myWebRequest);
    zConsole.WriteLine("Beginning HttpWebRequest for: " + URL);
}
void FinishWebRequest(IAsyncResult result)
{
    zConsole.WriteLine("...");
    string title = "Unknown";
    //Code under here doesnt get extcuted
    HttpWebResponse myWebResponse = (HttpWebResponse)((HttpWebRequest)result.AsyncState).EndGetResponse(result);
    StreamReader myWebSource = new StreamReader(myWebResponse.GetResponseStream());
    string source = "";            
    source = myWebSource.ReadToEnd();
    myWebResponse.Close();
    title = Regex.Match(source, @"'<title'b[^>]*'>'s*(?<Title>['s'S]*?)'</title'>", RegexOptions.IgnoreCase).Groups["Title"].Value;
    zConsole.WriteLine(title);
}

谢谢。

AsyncHttpWebRequest(网页标题检索程序)

我认为,问题是,你的程序结束之前,异步结果返回。执行控制台后的主线程。Writeline死亡。

休息看起来不错。

在回调代码周围放置一个try/catch块,看看是否有任何东西抛出异常。

否则,更多的细节将是有用的。当你说代码没有被执行时,你实际上是在逐步执行代码/使用断点,还是你假设这是基于控制台输出的情况?这个请求是从应用程序的主窗口线程发出的吗?