Opções de contexto do HTTP

Opções de contexto do HTTPLista de opções de contexto do HTTP

Descrição

Opções de contexto dos transportadores http:// e https://.

Opções

methodstring

GET, POST, ou qualquer outro método HTTP suportado pelo servidor remoto.

GET como padrão.

headerarray or string

Cabeçalhos adicionais que deverrão ser enviados durante a requisição. Valores nesta opção sobrescreverão outros valores (como User-agent:, Host:, e Authentication:), mesmo ao seguir redirecionamentos Location:. Portanto não é recomendado definir um cabeçalho Host:, se follow_location estiver habilitada.

user_agentstring

Valor a ser enviado no cabeçalho User-Agent:. Esta valor só será utilizado se o user-agent não for especificado na opção de contexto header acima.

Por padrão, a configuração user_agent no php.ini é utilizada.

contentstring

Dados adicionais a serem enviados depois dos cabeçalhos. Tipicamente utilizado em requisições POST ou PUT.

proxystring

URI que especifica o endereço do servidor de proxy. (por exemplo, tcp://proxy.example.com:5100).

request_fulluribool

Quando definido como true, toda a URI será utilizada na construção da requisição. (por exemplo GET http://www.example.com/path/to/file.html HTTP/1.0). Mesmo não sendo um formato padronizado de requisição, alguns servidores de proxy o exigem.

false como padrão.

follow_locationint

Segue os redirecionamentos feitos com o cabeçalho Location. Defina com 0 para desabilitar.

1 como padrão.

max_redirectsint

O número máximo de redirecionamentos a serem feitos. O valor 1 ou inferiores significarão que os redirecionamentos não são feitos.

20 como padrão.q

protocol_versionfloat

Versão do protocolo HTTP.

O padrão é 1.1 a partir do PHP 8.0.0; antes dessa versão o padrão era 1.0.

timeoutfloat

Timeout de leitura em segundos, especificado com um float (por exemplo, 10.5).

Por padrão, a configuração default_socket_timeout do php.ini é utilizada.

ignore_errorsbool

Retorna o conteúdo mesmo que códigos de status falhos sejam retornados.

false.

Exemplos

Exemplo #1 Buscando uma página e enviando dados pelo método POST

<?php

$postdata
= http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);

$opts = array('http' =>
array(
'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);

?>

Exemplo #2 Ignorando redirecionamentos, mas trazendo os cabeçalhos e conteúdo

<?php

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

$opts = array('http' =>
array(
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1'
)
);

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

// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));

// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Notas

Nota: Opções de contextos de streams socket básicos
Opções de contextos adicionais podem ser suportadas em transportes básicos Em streams http://, use as opções de contexto do transporte tcp://. Em streams https://, use as opções de contexto do transporte ssl://.

Nota: Linha de status HTTP
Quando este empacotador de stream faz um redirecionamento, o wrapper_data retornado pela função stream_get_meta_data() pode não conter necessariamente a linha de status HTTP, que atualmente se aplica ao conteúdo no í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', ...
A primeira requisição retornou 301 (redirecionamento permanente), então o empacotador de stream automaticamente fará o redirecionamento para conseguir uma resposta 200 (índice = 4).
To Top