Ich versuche, eine Zeichenfolge von jeder Webseite in meiner tragbaren Klassenbibliothek herunterladen. Ich habe die meisten grundlegenden Setup erstellt:Download Zeichenfolge von URL mit einer tragbaren Klassenbibliothek (PCL)
- ein neues PCL-Projekt erstellt
- kompatibel mit WP8 und WinRT sowie den obligatorischen Komponenten wie Silverlight
Als WebClient ist über diese Systeme hinweg nicht kompatibel, es ist nicht möglich zu verwenden:
string data = new WebClient().DownloadString();
Ich habe mit diesem als auch versucht (verwendet this):
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();
}
Allerdings, wenn ich den zweiten Satz von Code von einer externen C# Anwendung Referenzierung der PCL nenne, schlägt der Debugger einfach ohne Warnung oder Fehler Nachricht an:
request.GetResponseAsync();
Gibt es eine einfache Möglichkeit, eine Zeichenfolge, die ich vermisse, herunterzuladen?
* auch, warum würde der Debugger einfach ohne Erklärung verlassen?
Edit:
Hier ist eine andere Methode, die ich versucht habe - basierend auf einer Antwort bereits zur Verfügung gestellt. Auch diese Methode beendet einfach und erzwingt das Schließen des Debuggers.
PCL Methode:
public static async Task<string> DownloadString()
{
var url = "http://google.com";
var client = new HttpClient();
var data = await client.GetStringAsync(url);
return data;
}
Wählverfahren:
private static async void Method()
{
string data = await PCLProject.Class1.DownloadString();
return data;
}
Sind Sie mit dieser in eine Desktop App, Windows Store App, WP8 App oder was, wenn Sie dieses Verhalten sehen? Sind Sie sicher, dass Sie auf alle Aufgaben warten oder warten? (Andernfalls wird das Programm möglicherweise vollständig ausgeführt und beendet, bevor der Download abgeschlossen ist.) Wenn Sie Windows Phone verwenden, tun Sie etwas, das den UI-Thread nach Abschluss des Downloads blockiert (z. B. über Task.Wait oder Task. Ergebnis)? –