2016-08-08 20 views
1

I-Code ich schreibe auf Website machen HttpWebRequestHttpWebRequest in UWP (C#)

wenn Website arbeitet es HttpStatusCode.OK

zurück, wenn es nicht HttpStatusCode.NotFound

Mein Code

zurück
var url = "http://simplegames.com.ua/"; 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      Debug.WriteLine("All ok"); 
     } 
     else if (response.StatusCode == HttpStatusCode.NotFound) 
     { 
      Debug.WriteLine("URL not working"); 
     } 
     response.Close(); 

Aber ich habe Fehler

1) Zustand Severity Code Beschreibung Projektdatei Zeilenunterdrückung Fehler CS1061 ‚HttpWebRequest‘ gefunden werden konnte keine Definition für ‚GetResponse‘ enthalten und keine Erweiterungsmethode ‚GetResponse‘ ein erstes Argument vom Typ ‚HttpWebRequest‘ akzeptieren (fehlt Ihnen eine using-Direktive oder eine Baugruppe Referenz) Milano C: GitHub \ Milano_pizza \ Milano \ MainPage.xaml.cs 50 Aktive

2) Severity Code Beschreibung Projektdatei Zeilenunterdrückung \ Benutzer \ nemes \ Dokumente \ Status Fehler CS1929 'HttpWebResponse' enthält keine Definition für 'Schließen' und die beste Erweiterungsüberladung 'ExtensionMethods.Close (Stream)' erfordert einen Empfänger vom Typ 'Stream Milano C: \ Benutzer \ nemes \ Dokumente \ GitHub \ Milano_pizza \ Milano \ MainPage.xaml.cs 59 Aktive

+0

Haben Sie diesen Fehler beim Erstellen oder beim Schreiben bekommen? Haben Sie versucht, Visual Studio vollständig zu beenden und wieder zurückzukommen? Manchmal wird VS verwirrt. –

+0

Yes.I versuchte @ JeremyHolovacs –

+0

Haben Sie eine andere Klasse namens "HttpWebRequest" in Ihrem Code oder Namespace? –

Antwort

4

Obwohl wir können Verwenden Sie in UWP-Apps HttpWebRequest Class, aber nicht alle Methoden. HttpWebRequest.GetResponse method und HttpWebResponse.Close Method sind die Methoden, die nicht in UWP-Apps verwendet werden können. Normalerweise können wir herausfinden, ob eine Methode in UWP-Apps verwendet werden kann, indem Sie die Versionsinformation im unteren Teil des Dokuments überprüfen. Wenn wir Universal Windows Platform unter Versionsinformation finden können, dann sollten wir in der Lage sein, diese Methode in UWP-Anwendungen zu verwenden.

In .NET Kern/UWP, System.Net.HttpWebRequest Klasse ist in System.Net.Requests Bibliothek und ist nicht auf die Verwendung empfohlen. Ref. .NET Networking APIs for UWP Apps:

System.Net.Requests

Diese Bibliothek enthält Typen im Zusammenhang mit System.Net.HttpWebRequest und System.Net.HttpWebResponse Klassen, die Entwicklern ermöglichen, die Client-Rolle zu implementieren das HTTP-Protokoll. Die API-Oberfläche für .NET Core 5 ist die gleiche wie für Windows 8.1-Apps und ist sehr begrenzt im Vergleich zu der Oberfläche in .NET Framework. Dies ist intentional und wir stark ermutigen Wechsel auf die HttpClient API statt - das ist, wo unsere Energie und Innovation in Zukunft konzentriert werden wird.

Diese Bibliothek wird ausschließlich aus Gründen der Abwärtskompatibilität und zur Freigabe der Verwendung von .NET-Bibliotheken, die diese älteren APIs verwenden, bereitgestellt. Für .NET Core basiert die Implementierung von HttpWebRequest tatsächlich auf HttpClient (Umkehr der Abhängigkeitsreihenfolge von.NET Framework). Wie oben erwähnt, besteht der Grund dafür darin, die Verwendung des verwalteten .NET-HTTP-Stacks in einem UWP-Anwendungskontext zu vermeiden und sich als eine HTTP-Client-Rollen-API für .NET-Entwickler in Richtung HttpClient zu bewegen.

Und in UWP, haben wir zwei Httpclient-APIs, sind sie System.Net.Http.HttpClient und Windows.Web.Http.HttpClient. Sie können eine von ihnen entsprechend Ihrer Anforderung wählen. Weitere Informationen zu diesen beiden HttpClient-APIs finden Sie unter Demystifying HttpClient APIs in the Universal Windows Platform.