0

我正在使用这段代码:

在类的构造函数中:

 this.wc.Credentials = CredentialCache.DefaultCredentials;
 this.wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

    private void button1_Click(object sender, EventArgs e)
    {

        this.wc.DownloadStringAsync(new Uri("http://url" + this.a[0] + ".aspx"));
    }

public void wc_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e)
    {
        if (!e.Cancelled && e.Error == null)
        {
            string result = (string)e.Result;
            // do something
            this.a.RemoveAt(0);
            if (this.a.Count > 0)
            {
                Console.WriteLine(this.a[0]);
                // keep retrieving
            }
        }
        else
        {
            // display/handle error
        }
    }

我知道我无法将结果设置DownloadStringAsync为变量,因为它是void,但如果我尝试在DownloadStringCompletedEvent处理程序中执行此操作,它只会返回空白。我试图将其分离到其他类中,但我无法从请求中返回任何内容,因为它是 async/void 或出于任何原因。

我在一个类中有上述内容,在主应用程序类中使用,我无法将http请求的结果设置为主类中的变量。有任何想法吗?

4

1 回答 1

0

你需要看什么?它将您的源显示为字符串,并且可以通过这种方式看到:

public void wc_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e)
{
    if (!e.Cancelled && e.Error == null)
    {
        MessageBox.Show((string)e.Result);
    }
}
于 2014-07-22T13:22:11.573 回答