我正在使用此代码:
在类的构造函数中:
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
处理程序中执行此操作,它只会返回空白。我试图将其分成其他类,但我无法从请求中返回任何内容,因为它是异步/无效或无论出于何种原因。
我在一个类中有上面的内容,它在主应用程序类中使用,我不能将http请求的结果设置为主类中的变量。有什么想法吗?
答案 0 :(得分:0)
你需要看什么? 它将您的源显示为字符串,并可以通过这种方式查看:
public void wc_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e)
{
if (!e.Cancelled && e.Error == null)
{
MessageBox.Show((string)e.Result);
}
}