我正在尝试从可移植类库中的任何网页下载字符串。我创建了最基本的设置:
- 创建了一个新的 PCL 项目
- 兼容WP8和WinRT以及Silverlight等必备组件
由于 WebClient 在这些系统之间不兼容,因此无法使用:
string data = new WebClient().DownloadString();
我也尝试过使用这个(使用这个):
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = HttpMethod.Get;
HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
string data = ""
using (var sr = new StreamReader(response.GetResponseStream()))
{
data = sr.ReadToEnd();
}
但是,当我从引用 PCL 的外部 C# 应用程序调用第二组代码时,调试器只是失败,没有警告或错误消息:
request.GetResponseAsync();
有没有一种简单的方法可以下载我丢失的字符串?
*另外,为什么调试器会直接退出而没有任何解释?
编辑:
这是我尝试过的另一种方法 - 基于已经提供的答案。同样,此方法只是退出并强制关闭调试器。
PCL方法:
public static async Task<string> DownloadString()
{
var url = "http://google.com";
var client = new HttpClient();
var data = await client.GetStringAsync(url);
return data;
}
调用方法:
private static async void Method()
{
string data = await PCLProject.Class1.DownloadString();
return data;
}