En una aplicación que mantiene código CFStream, elija la propiedad de proxy según el tipo de flujo que se configura. Un flujo de solicitud HTTP tiene un tratamiento de protocolo que un flujo de socket simple no adquiere solo por su diccionario de propiedades.

Conexión que se construyeConfiguración documentada
HTTP CFStream a través de un proxy HTTPkCFStreamPropertyHTTPProxy
CFStream a través de un proxy SOCKSkCFStreamPropertySOCKSProxy

Apple describe la propiedad HTTP específicamente como la configuración de un HTTP CFStream. Ese flujo se puede crear a partir de una solicitud CFHTTPMessage con CFReadStreamCreateForHTTPRequest. Al abrir ese flujo, la solicitud HTTP se serializa y se envía.

La propiedad SOCKS acepta un CFDictionary que contiene al menos las claves de host y puerto del proxy SOCKS. Es la propiedad pública correspondiente para el tratamiento SOCKS en un CFStream. Para una prueba TCP pública permitida sin credenciales de proxy, la lista de proxys SOCKS ofrece valores candidatos de host y puerto para ese diccionario. Coincida con el protocolo admitido por el flujo y verifique el acceso al destino y al puerto reales.

Aplique la propiedad elegida antes de abrir el flujo y compruebe el resultado booleano de la llamada de establecimiento de la propiedad. Una propiedad rechazada puede indicar que el flujo o el valor no admiten la configuración solicitada.

Para tráfico TCP arbitrario a través de un proxy HTTP, use un conector que realice la negociación CONNECT necesaria. Esa negociación es trabajo de protocolo; crear un flujo crudo solo hacia la dirección del proxy no la ha realizado.

Artículos relacionados