Nunha aplicación que mantén código CFStream, escolla a propiedade de proxy segundo o tipo de fluxo que se configura. Un fluxo de solicitude HTTP ten un tratamento de protocolo que un fluxo de socket simple non adquire só polo seu dicionario de propiedades.

Conexión que se constrúeConfiguración documentada
HTTP CFStream a través dun proxy HTTPkCFStreamPropertyHTTPProxy
CFStream a través dun proxy SOCKSkCFStreamPropertySOCKSProxy

Apple describe a propiedade HTTP especificamente como a configuración dun HTTP CFStream. Ese fluxo pódese crear a partir dunha solicitude CFHTTPMessage con CFReadStreamCreateForHTTPRequest. Ao abrir ese fluxo, a solicitude HTTP serialízase e envíase.

A propiedade SOCKS acepta un CFDictionary que contén polo menos as claves de host e porto do proxy SOCKS. É a propiedade pública correspondente para o tratamento SOCKS nun CFStream. Para unha proba TCP pública permitida sen credenciais de proxy, a lista de proxys SOCKS ofrece valores candidatos de host e porto para ese dicionario. Faga coincidir o protocolo admitido polo fluxo e verifique o acceso ao destino e ao porto reais.

Aplique a propiedade escollida antes de abrir o fluxo e comprobe o resultado booleano da chamada de definición da propiedade. Unha propiedade rexeitada pode indicar que o fluxo ou o valor non admiten a configuración solicitada.

Para tráfico TCP arbitrario a través dun proxy HTTP, use un conector que realice a negociación CONNECT necesaria. Esa negociación é traballo de protocolo; crear un fluxo cru só cara ao enderezo do proxy non a realizou.

Artigos relacionados