我正在使用这段代码:
在类的构造函数中:
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请求的结果设置为主类中的变量。有任何想法吗?