Lista de opciones de contexto HTTP

# Opciones de contexto HTTP

Opciones de contexto HTTP — Lista de opciones de contexto HTTP

### Descripción

Opciones de contexto para los protocolos `http://` y `https://`.

### Opciones

`method` string

  `GET`, `POST`, o cualquier otro método HTTP soportado por el servidor remoto.

  Por omisión, vale `GET`.

`header` array o string

  Encabezados adicionales a enviar durante la petición. Los valores de esta opción sobrescribirán otros valores (como `User-agent:`, `Host:`, y `Authentication:`), incluso al seguir redirecciones `Location:`. Por lo tanto, no se recomienda definir el encabezado `Host:`, si `follow_location` está activado.

  Una cadena debe contener pares `Clave : valor` delimitados por `\r\n`, por ejemplo : `"Content-Type: application/json\r\nConnection: close"`. Un array debe contener una lista de pares `Clave : valor`, por ejemplo : `["Content-Type: application/json", "Connection: close"]`.

`user_agent` string

  Valor a enviar con el encabezado `User-Agent:`. Este valor solo debe ser utilizado si el agente de usuario no está especificado en la opción de contexto `header` anterior.

  Por omisión, se utilizará el valor de la opción de configuración user_agent del archivo php.ini.

`content` string

  Los datos adicionales a enviar después de los encabezados. Típicamente utilizados durante las peticiones POST o PUT.

`proxy` string

  URI de la dirección del proxy (ej. `tcp://proxy.example.com:5100`).

`request_fulluri` bool

  Cuando se define como `true`, la URI completa será utilizada al construir la petición (ej. `GET http://www.example.com/path/to/file.html HTTP/1.0`). Aunque este formato de petición no es estándar, algunos servidores de proxy lo requieren.

  Por omisión, vale `false`.

`follow_location` int

  Sigue las redirecciones `Location`. Debe definirse como `0` para desactivar.

  Por omisión, vale `1`.

`max_redirects` int

  El número máximo de redirecciones a seguir. El valor `1` o inferior significa que ninguna redirección será seguida.

  Por omisión, vale `20`.

`protocol_version` float

  Versión del protocolo HTTP.

  Por omisión, vale `1.1` a partir de PHP 8.0.0; antes de esta versión el valor por omisión era `1.0`.

`timeout` float

  Tiempo máximo de espera para la lectura, en forma de float (ej. `10.5`).

  Por omisión, se utilizará el valor de la opción de configuración default_socket_timeout del archivo php.ini.

`ignore_errors` bool

  Obtiene el contenido incluso al recibir un código de error.

  Por omisión, vale `false`.

### Ejemplos

Ejemplo #1 Obtención de una página y envío de datos POST

    <?php

    $postdata = http_build_query(
        [
            'var1' => 'du contenu',
            'var2' => 'doh',
        ]
    );

    $opts = ['http' =>
        [
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => $postdata,
        ]
    ];

    $context = stream_context_create($opts);

    $result = file_get_contents('http://example.com/submit.php', false, $context);

    ?>

Ejemplo #2 Ignora las redirecciones pero obtiene los encabezados y el contenido

    <?php

    $url = "http://www.example.org/header.php";

    $opts = ['http' =>
        [
            'method' => 'GET',
            'max_redirects' => '0',
            'ignore_errors' => '1',
        ]
    ];

    $context = stream_context_create($opts);
    $stream = fopen($url, 'r', false, $context);

    // información sobre los encabezados y metadatos del flujo
    var_dump(stream_get_meta_data($stream));

    // datos actuales de $url
    var_dump(stream_get_contents($stream));
    fclose($stream);
    ?>

### Notas

> Nota: Opciones de contexto del flujo subyacente
> Opciones de contexto adicionales pueden ser soportadas por el transporte subyacente. Para los flujos `http://`, consulte las opciones de contexto del transporte `tcp://`. Para los flujos `https://`, consulte las opciones de contexto del transporte `ssl://`.

> Nota: Línea de estado HTTP
> Cuando este manejador de flujo sigue una redirección, `wrapper_data`, devuelto por la función stream_get_meta_data() no debe contener necesariamente la línea de estado HTTP que se aplica a los datos de contenido en el índice `0`.

>     array (
>       'wrapper_data' =>
>       array (
>         0 => 'HTTP/1.0 301 Moved Permanently',
>         1 => 'Cache-Control: no-cache',
>         2 => 'Connection: close',
>         3 => 'Location: http://example.com/foo.jpg',
>         4 => 'HTTP/1.1 200 OK',
>         ...

> La primera petición devuelve una `301` (redirección permanente), por lo tanto, el manejador de flujo sigue automáticamente la redirección para obtener una respuesta `200` (índice = `4`).

### Ver también

- http://
- Opciones de contexto de los sockets
- Opciones de contexto SSL

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open