[英]Download string from URL using a portable class library (PCL)
我正在尝试从便携式类库中的任何网页下载字符串。 我创建了最基本的设置:
由于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#应用程序调用第二组代码时,调试器只会失败并显示NO警告或错误消息:
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;
}
安装NuGet包:
Microsoft.Bcl.Async
,它为PCL添加了async
/ await
支持。 Microsoft.Net.Http
,它为PCL添加了HttpClient
支持。 然后你可以轻松地做到这一点:
var client = new HttpClient();
var data = await client.GetStringAsync(url);
这个方法对我有用,它从google.com返回了HTML源代码:
public async void GetStringFromWebpage()
{
using (HttpClient wc = new HttpClient())
{
var data = await wc.GetStringAsync("http://google.com/");
Debug.WriteLine("string:" + data);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.