Para un identificador de libcurl existente, separe explicitamente as listas de cabeceiras de destino e de proxy:

curl_easy_setopt(handle, CURLOPT_HEADEROPT, (long)CURLHEADER_SEPARATE);
curl_easy_setopt(handle, CURLOPT_PROXYHEADER, proxy_headers);
curl_easy_setopt(handle, CURLOPT_HTTPHEADER, origin_headers);

Manteña vivo o identificador configurado e as listas válidas durante a transferencia. CURLHEADER_SEPARATE distingue as cabeceiras usadas en CONNECT das cabeceiras usadas para a solicitude de destino. Os exemplos antigos de política unificada poden poñer a lista ordinaria nos dous intercambios.

Ruta da solicitudeSignificado das listas separadas
HTTPS dentro dun túnel CONNECT ordinarioO intercambio co proxy vai primeiro; despois seguen as cabeceiras HTTP de destino dentro do TLS de destino.
Reenvío HTTP simpleO proxy pode ler as cabeceiras de destino, e libcurl pode usar ambas as listas aplicables na única solicitude reenviada.

Un marcador de enrutamento só para o proxy pertence ao intercambio co proxy. Co reenvío en texto simple, un campo personalizado arbitrario pode chegar á orixe a menos que a disposición de reenvío o xestione; o nome da opción non é garantía de confidencialidade.

Utilice opcións de credenciais compatibles para a autenticación. Para os metadatos definidos polo operador, determine que salto os consome e se se poden reenviar en lugar de poñer un contrasinal nun campo xenérico.

Cando falte un marcador ou pareza filtrarse, identifique a solicitude real que o contén. Unha devolución de chamada de cabeceiras que mostra varios intercambios pode facer que listas correctamente separadas parezan mesturadas.

Artigos relacionados