prüft die Erreichbarkeit für eine bestimmte Seite in einer URL

7

Nachdem ich die Antwort für gelesen habe diese Frage Ich habe festgestellt, dass die Verwendung von reachabilityWithHostName nicht mit einer URL wie der folgenden funktioniert: mySite.com/service.asmx , gibt es trotzdem eine Erreichbarkeit für diese URL mit reachabilityWithHostName oder einer reachability -Klassenmethode?

Vielen Dank im Voraus.

    
JAHelia 08.03.2012, 11:25
quelle

2 Antworten

18

Die Erreichbarkeitsklasse und -reachabilityWithHostname: wurden entwickelt, um ein schneller, fehlgeschlagener Mechanismus zu sein, mit dem festgestellt werden kann, ob eine grundlegende Netzwerkverbindung zum Host besteht. Wenn Sie überprüfen müssen, ob eine bestimmte URL heruntergeladen werden kann, müssen Sie mithilfe von NSURLConnection den Inhalt der URL abrufen, um sicherzustellen, dass sie wirklich verfügbar ist.

Je nachdem, ob Sie dies im Vordergrund oder im Hintergrund tun müssen, können Sie entweder das einfache aber das blockierende:

verwenden %Vor%

oder Sie können die kompliziertere Methode zum Erstellen eines NSURLConnection-Objekts verwenden, indem Sie einen Delegaten zum Empfangen von Antworten einrichten und darauf warten, dass diese Antworten eingehen.

Für den einfachen Fall:

%Vor%

Wenn Sie eine nicht-nil myData erhalten, haben Sie eine Art von Konnektivität. response und error sagen Ihnen, was der Server Ihnen antwortete (im Falle einer Antwort und wenn Sie eine non-nil myData erhalten haben) oder welche Art von Fehler aufgetreten ist, im Falle eines nil myData.

Für den nicht-trivialen Fall können Sie eine gute Anleitung von Apples Verwenden von NSURLConnection .

Wenn Sie Ihren Vordergrundprozess nicht blockieren möchten, können Sie dies auf zwei verschiedene Arten tun. Die obige Dokumentation enthält Informationen zum Implementieren des Delegaten usw. Eine einfachere Implementierung wäre jedoch, GCD zu verwenden, um die synchrone Anforderung in einem Hintergrundthread zu senden, und sich dann im Hauptthread zu melden, wenn Sie fertig sind. p>

In etwa so:

%Vor%     
gaige 08.03.2012, 11:47
quelle
5

Wenn Sie die Erreichbarkeit gegen eine URL (die normalerweise für einen Hostnamen verwendet wird) überprüfen möchten, führen Sie einfach eine HEAD-Anfrage mit einer NSURLConnection durch.

    
fbernardo 08.03.2012 11:43
quelle