In einer Anwendung, die CFStream-Code pflegt, wählen Sie die Proxy-Eigenschaft nach der Art des zu konfigurierenden Streams. Ein HTTP-Anforderungsstream verfügt über eine Protokollbehandlung, die ein reiner Socket-Stream nicht allein durch sein Eigenschaftswörterbuch erhält.

Aufzubauende VerbindungDokumentierte Konfiguration
HTTP-CFStream über einen HTTP-ProxykCFStreamPropertyHTTPProxy
CFStream über einen SOCKS-ProxykCFStreamPropertySOCKSProxy

Apple beschreibt die HTTP-Eigenschaft ausdrücklich als Konfiguration eines HTTP-CFStream. Ein solcher Stream lässt sich aus einer CFHTTPMessage-Anforderung mit CFReadStreamCreateForHTTPRequest erzeugen. Das Öffnen dieses Streams serialisiert und sendet die HTTP-Anforderung.

Die SOCKS-Eigenschaft nimmt ein CFDictionary entgegen, das mindestens die Schlüssel für Host und Port des SOCKS-Proxys enthält. Sie ist die entsprechende öffentliche Eigenschaft für die SOCKS-Behandlung auf einem CFStream. Für einen zulässigen öffentlichen TCP-Test ohne Proxy-Anmeldedaten bietet die SOCKS-Proxy-Liste Kandidatenwerte für Host und Port für dieses Wörterbuch. Gleichen Sie das vom Stream unterstützte Protokoll ab und prüfen Sie den Zugriff auf das tatsächliche Ziel und den Port.

Setzen Sie die gewählte Eigenschaft, bevor Sie den Stream öffnen, und prüfen Sie das boolesche Ergebnis des Aufrufs zum Setzen der Eigenschaft. Eine abgelehnte Eigenschaft kann bedeuten, dass der Stream oder der Wert die angeforderte Konfiguration nicht unterstützt.

Für beliebigen TCP-Verkehr über einen HTTP-Proxy verwenden Sie einen Connector, der die erforderliche CONNECT-Aushandlung durchführt. Diese Aushandlung ist Protokollarbeit; das bloße Erzeugen eines Rohstreams zur Adresse des Proxys hat sie nicht ausgeführt.

Ähnliche Artikel