使用DownloadStringAsync下载HTML源代码不会在WP8上下载整个源代码
本文关键字:下载 源代码 WP8 DownloadStringAsync HTML 使用 | 更新日期: 2023-09-27 18:06:17
我试图下载一些HTML源代码与DownloadStringAsync。我的代码是这样的:
WebClient client = new WebClient();
client.DownloadStringCompleted +=
new DownloadStringCompletedEventHandler(DownloadStringCallback2);
client.DownloadStringAsync(new Uri(url));
private void DownloadStringCallback2(Object sender, DownloadStringCompletedEventArgs e)
{
source = (string)e.Result;
if (!source.Contains("<!-- Inline markers start rendering here. -->"))
MessageBox.Show("Nope");
else
MessageBox.Show("Worked");
}
如果我查看变量"source",我可以看到一些源代码在那里,但不是全部。但是,如果我这样做,它会工作:
while (true)
{
source = wb.DownloadString(url);
if (source.Contains("<!-- Inline markers start rendering here. -->"))
break;
}
不幸的是,我不能使用这种方法,因为WP8没有DownloadString。
有没有人知道如何解决这个问题,或者是否有更好的方法?
这个函数应该能帮到你
public static Task<string> DownloadString(Uri url)
{
var tcs = new TaskCompletionSource<string>();
var wc = new WebClient();
wc.DownloadStringCompleted += (s, e) =>
{
if (e.Error != null) tcs.TrySetException(e.Error);
else if (e.Cancelled) tcs.TrySetCanceled();
else tcs.TrySetResult(e.Result);
};
wc.DownloadStringAsync(url);
return tcs.Task;
}