Request Options

Pode personalizar os pedidos criados e transferidos por um cliente usando solicitar opções. As opções de pedido controlam vários aspectos de um pedido incluindo, cabeçalhos, parâmetros de query string, definições de timeout, o corpo de um pedido, e muito mais.

Todos os exemplos seguintes utilizam o seguinte cliente:

$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);

allow_redirects

Resumo

Descreve o comportamento de redireccionamento de um pedido

Tipos
  • bool
  • array
Por defeito
[
    'max' => 5,
    'strict' => false,
    'referer' => falso,
    'protocols' => ['http', 'https'],
    'track_redirects' => falso
]
Constante

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Definir para false para desactivar o redireccionamento.

$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302

Definir para true (a definição padrão) para permitir redireccionamentos normais com um número máximo de 5 redireccionamentos.

$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200

Pode também passar uma matriz associativa contendo os seguintes pares de valores chave:

  • max: (int, por defeito=5) número máximo de redireccionamentos permitidos.

  • strict: (bool, por defeito=falso) Definir para verdadeiro para utilizar redireccionamentos rigorosos. Os redireccionamentos estritos compatíveis com RFC significam que os pedidos de redireccionamento POST são enviados como Pedidos POST vs. fazer o que a maioria dos browsers faz que é redireccionar os pedidos POST com pedidos de GET

  • referer: (bool, por defeito=falso) Definir para verdadeiro para permitir a adição do Referidor cabeçalho ao redireccionar.

  • protocolos

    : (array, predefinido=['http', 'https']) Especificou que protocolos são permitido para pedidos de redireccionamento

  • on_redirect: (chamável) PHP chamável que é invocado quando um redireccionamento é encontrado. O chamável é invocado com o pedido original e o redireccionar a resposta que foi recebida. Qualquer valor de retorno do on_redirect A função é ignorada

  • track_redirects: (bool) Quando definido para true, cada URI redireccionado e estado código encontrado será rastreado na X-Guzzle-Redirect-History e X-Guzzle-Redirect-Status-History headers respectivamente. Todos os URIs e Os códigos de estado serão armazenados pela ordem em que os redireccionamentos foram encontrados

    Nota: Ao seguir redirecciona o cabeçalho X-Guzzle-Redirect-History irá excluir o URI do pedido inicial e o X-Guzzle-Redirect-Status-History excluirá o código de estado final

use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\UriInterface;

$onRedirect = function(
    RequestInterface $request,
    ResponseInterface $response,
    UriInterface $uri
) {
    echo 'Redirecting! ' . $request->getUri() . ' to ' . $uri . "\n";
};

$res = $client->request('GET', '/redirect/3', [
    'allow_redirects' => [
        'max'             => 10,        // allow at most 10 redirects.
        'strict'          => true,      // use "strict" RFC compliant redirects.
        'referer'         => true,      // add a Referer header
        'protocols'       => ['https'], // only allow https URLs
        'on_redirect'     => $onRedirect,
        'track_redirects' => true
    ]
]);

echo $res->getStatusCode();
// 200

echo $res->getHeaderLine('X-Guzzle-Redirect-History');
// http://first-redirect, http://second-redirect, etc...

echo $res->getHeaderLine('X-Guzzle-Redirect-Status-History');
// 301, 302, etc...

Advertência

Esta opção só tem um efeito se o seu manipulador tiver o GuzzleHttp\Middleware::redirect middleware. Este middleware é adicionado por defeito, quando um cliente é criado sem manipulador, e é adicionado por padrão ao criar um manipulador com GuzzleHttp\HandlerStack::create.

Nota

Esta opção tem no efeito ao fazer pedidos usando GuzzleHttp\Client::sendRequest(). A fim de permanecer em conformidade com o PSR-18, qualquer resposta redireccionada é devolvida tal como está.

auth

Resumo

Passar um conjunto de parâmetros de autenticação HTTP para utilizar com o pedido. A matriz deve conter o nome de utilizador no índice [08798498526526573008982, a palavra-passe em índice [1], e opcionalmente pode fornecer um tipo de autenticação integrada em index [2]. Pass null para desactivar a autenticação para um pedido.

Tipos
  • array
  • string
  • null
Por defeito

None

Constante

GuzzleHttp\RequestOptions::AUTH

Os tipos de autenticação incorporados são os seguintes:

básico
Use basic HTTP authentication no cabeçalho Authorization (a configuração padrão utilizada se nenhuma for especificado).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digerir
Use digest authentication (deve ser suportado pelo manipulador HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Nota

Isto só é actualmente suportado quando se utiliza o manipulador cURL, mas criando uma substituição que pode ser utilizada com qualquer manipulador de HTTP é planeado.

ntlm
Use autenticação Microsoft NTLM (deve ser suportado pelo manipulador HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Nota

Isto só é actualmente suportado quando se utiliza o manipulador cURL.

body

Resumo

A opção body é utilizada para controlar o corpo de uma entidade anexando pedido (por exemplo, PUT, POST, PATCH)

Tipos
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Por defeito

None

Constante

GuzzleHttp\RequestOptions::BODY

Esta configuração pode ser definida para qualquer um dos seguintes tipos:

  • string

    // Pode enviar pedidos que utilizam uma string como corpo da mensagem.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • resource return from fopen()

    // Pode enviar pedidos que utilizam um recurso de fluxo como o corpo.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Pode enviar pedidos que utilizam um objecto Guzzle stream como o corpo
    $stream = GuzzleHttp\Psr7\Utils::streamFor('content...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Nota

Esta opção não pode ser utilizada com form_params, multipart, ou json

cert

Resumo

Definir para uma string para especificar o caminho para um ficheiro contendo um PEM certificado formatado do lado do cliente. Se for necessária uma palavra-passe, então defina para uma matriz contendo o caminho para o ficheiro PEM no primeiro elemento da matriz seguido da palavra-passe necessária para o certificado na segunda matriz elemento

Tipos
  • string
  • array
Por defeito

None

Constante

GuzzleHttp\RequestOptions::CERT

$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);

cookies

Resumo
Especifica se os cookies são ou não utilizados num pedido ou que cookie frasco a utilizar ou que cookies enviar.
Tipos
GuzzleHttp\Cookie\CookieJarInterface
Por defeito
Nenhum
Constante
GuzzleHttp\RequestOptions::COOKIES

Deve especificar a opção cookies como GuzzleHttp\Cookie\CookieJarInterface ou false.

$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);

Advertência

Esta opção só tem um efeito se o seu manipulador tiver o GuzzleHttp\Middleware::cookies middleware. Este middleware é adicionado por defeito, quando um cliente é criado sem manipulador, e é adicionado por padrão ao criar um manipulador com GuzzleHttp\default_handler.

Dica

Ao criar um cliente, pode definir a opção padrão de cookie para true utilizar uma sessão cookie partilhada associada com o cliente.

connect_timeout

Resumo
Flutuar descrevendo o número de segundos a esperar enquanto se tenta ligar a um servidor. Use 0 para esperar indefinidamente (o comportamento por defeito).
Tipos
flutuador
Por defeito
0
Constante
GuzzleHttp\RequestOptions::CONNECT_TIMEOUT
// Timeout if the client fails to connect to the server in 3.14 seconds.
$client->request('GET', '/delay/5', ['connect_timeout' => 3.14]);

Nota

Esta configuração deve ser suportada pelo manipulador de HTTP utilizado para enviar um pedido. connect_timeout é actualmente suportado apenas pela cURL incorporada manipulador.

debug

Resumo

Set to true ou set to a PHP stream retornado por fopen() to permitir uma saída de depuração com o manipulador utilizado para enviar um pedido. Por exemplo, ao usar cURL para transferir pedidos, o verbo cURL de CURLOPT_VERBOSE serão emitidos. Ao utilizar o invólucro de fluxo PHP, o invólucro de fluxo as notificações serão emitidas. Se for definida como verdadeira, a saída será escrita para STDOUT do PHP. Se for fornecido um fluxo PHP, a saída é escrita para o fluxo

Tipos
  • bool
  • fopen() resource
Por defeito

None

Constante

GuzzleHttp\RequestOptions::DEBUG

$client->request('GET', '/get', ['debug' => true]);

Executando o exemplo acima, resultaria algo como o seguinte:

* About to connect() to httpbin.org port 80 (#0)
*   Trying 107.21.213.98... * Connected to httpbin.org (107.21.213.98) port 80 (#0)
> GET /get HTTP/1.1
Host: httpbin.org
User-Agent: Guzzle/4.0 curl/7.21.4 PHP/5.5.7

< HTTP/1.1 200 OK
< Access-Control-Allow-Origin: *
< Content-Type: application/json
< Date: Sun, 16 Feb 2014 06:50:09 GMT
< Server: gunicorn/0.17.4
< Content-Length: 335
< Connection: keep-alive
<
* Connection #0 to host httpbin.org left intact

decode_content

Resumo

Especificar se Content-Encoding responses (gzip, deflacionar, etc.) são automaticamente descodificados

Tipos
  • string
  • bool
Por defeito

true

Constante

GuzzleHttp\RequestOptions::DECODE_CONTENT

Esta opção pode ser utilizada para controlar a forma como os organismos de resposta codificados são tratado. Por defeito, decode_content é definido como verdadeiro, significando qualquer gzip ou a resposta deflacionada será descodificada por Guzzle.

Quando definido para false, o corpo de uma resposta nunca é descodificado, o que significa que os bytes passam através do manipulador inalterados.

// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
    'headers'        => ['Accept-Encoding' => 'gzip'],
    'decode_content' => false
]);

Quando definido para uma cadeia, os bytes de uma resposta são descodificados e o valor da cadeia fornecida à opção decode_content é passada como a opção Accept-Encoding cabeçalho do pedido.

// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);

delay

Resumo

O número de milissegundos a atrasar antes de enviar o pedido

Tipos
  • integer
  • float
Por defeito

null

Constante

GuzzleHttp\RequestOptions::DELAY

expect

Resumo

Controla o comportamento do cabeçalho "Expect: 100-Continue"

Tipos
  • bool
  • integer
Por defeito

1048576

Constante

GuzzleHttp\RequestOptions::EXPECT

Definir para true para activar o cabeçalho "Expect: 100-Continue" para todos os pedidos que envia um corpo. Definir para false para desactivar o "Expect: 100-Continue". cabeçalho para todos os pedidos. Definir para um número de modo a que o tamanho da carga útil tenha ser maior do que o número para enviar o cabeçalho Expect. Configurar para um enviará o cabeçalho Expect para todos os pedidos em que o tamanho do a carga útil não pode ser determinada ou quando o corpo não é rebobinável.

Por defeito, Guzzle adicionará o cabeçalho "Expect: 100-Continue" quando o tamanho do corpo de um pedido for superior a 1 MB e um pedido estiver a utilizar HTTP/1.1.

Nota

Esta opção só tem efeito quando se utiliza HTTP/1.1. O HTTP/1.0 e Os protocolos HTTP/2.0 não suportam o cabeçalho "Expect: 100-Continue". O suporte para lidar com o fluxo de trabalho "Expect: 100-Continue" deve ser implementado por manipuladores Guzzle HTTP utilizados por um cliente.

force_ip_resolve

Resumo
Definir para "v4" se quiser que os manipuladores HTTP utilizem apenas o protocolo ipv4 ou "v6" para o protocolo ipv6.
Tipos
corda
Por defeito
nulo
Constante
GuzzleHttp\RequestOptions::FORCE_IP_RESOLVE
// Force ipv4 protocol
$client->request('GET', '/foo', ['force_ip_resolve' => 'v4']);

// Force ipv6 protocol
$client->request('GET', '/foo', ['force_ip_resolve' => 'v6']);

Nota

Esta configuração deve ser suportada pelo manipulador de HTTP utilizado para enviar um pedido. force_ip_resolve é actualmente suportado apenas pela cURL incorporada e manipuladores de riachos.

form_params

Resumo
Usado para enviar um pedido aplicação/x-www-form-urlencoded POST.
Tipos
matriz
Constante
GuzzleHttp\RequestOptions::FORM_PARAMS

Matriz associativa de nomes de campos de formulário a valores em que cada valor é uma cadeia ou conjunto de cordas. Define o cabeçalho Content-Type para aplicação/x-www-form-urlencoded quando nenhum cabeçalho Content-Type já está presente.

$client->request('POST', '/post', [
    'form_params' => [
        'foo' => 'bar',
        'baz' => ['hi', 'there!']
    ]
]);

Nota

form_params não pode ser usado com a opção multipart. Terá de usar a opção uma ou a outra. Utilizar form_params para application/x-www-form-urlencoded. pedidos, e multipart para multipart/form-data pedidos.

Esta opção não pode ser utilizada com body, multipart, ou json

headers

Resumo
Conjunto associativo de cabeçalhos a acrescentar ao pedido. Cada chave é a nome de um cabeçalho, e cada valor é uma cadeia ou conjunto de cadeias de caracteres representando os valores do campo de cabeçalho.
Tipos
matriz
Defaults
Nenhum
Constante
GuzzleHttp\RequestOptions::HEADERS
// Set various headers on a request
$client->request('GET', '/get', [
    'headers' => [
        'User-Agent' => 'testing/1.0',
        'Accept'     => 'application/json',
        'X-Foo'      => ['Bar', 'Baz']
    ]
]);

Os cabeçalhos podem ser adicionados como opções padrão ao criar um cliente. Quando os cabeçalhos são utilizadas como opções padrão, só são aplicadas se o pedido estiver a ser criado não contém já o cabeçalho específico. Isto inclui ambos os pedidos aprovados para o cliente nos métodos send() e sendAsync(), e pedidos criado pelo cliente (por exemplo, request() e requestAsync())).

$client = new GuzzleHttp\Client(['headers' => ['X-Foo' => 'Bar']]);

// Will send a request with the X-Foo header.
$client->request('GET', '/get');

// Sets the X-Foo header to "test", which prevents the default header
// from being applied.
$client->request('GET', '/get', ['headers' => ['X-Foo' => 'test']]);

// Will disable adding in default headers.
$client->request('GET', '/get', ['headers' => null]);

// Will not overwrite the X-Foo header because it is in the message.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request);

// Will overwrite the X-Foo header with the request option provided in the
// send method.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request, ['headers' => ['X-Foo' => 'overwrite']]);

http_errors

Resumo
Definir para false para desactivar o lançamento de excepções sobre um protocolo HTTP erros (ou seja, 4xx e 5xx respostas). As excepções são lançadas por defeito quando São encontrados erros de protocolo HTTP.
Tipos
bool
Por defeito
true
Constante
GuzzleHttp\RequestOptions::HTTP_ERRORS
$client->request('GET', '/status/500');
// Throws a GuzzleHttp\Exception\ServerException

$res = $client->request('GET', '/status/500', ['http_errors' => false]);
echo $res->getStatusCode();
// 500

Advertência

Esta opção só tem um efeito se o seu manipulador tiver o GuzzleHttp\Middleware::httpErrors middleware. Este middleware é adicionado por defeito, quando um cliente é criado sem manipulador, e é adicionado por padrão ao criar um manipulador com GuzzleHttp\default_handler.

idn_conversion

Resumo

Suporte a Nome de Domínio Internacionalizado (IDN) (activado por defeito se intl extensão está disponível)

Tipos
  • bool
  • int
Por defeito

true if intl extension is available (and ICU library is 4.6+ for PHP 7.2+), false otherwise

Constante

GuzzleHttp\RequestOptions::IDN_CONVERSION

$client->request('GET', 'https://яндекс.рф');
// яндекс.рф is translated to xn--d1acpjx3f.xn--p1ai before passing it to the handler

$res = $client->request('GET', 'https://яндекс.рф', ['idn_conversion' => false]);
// The domain part (яндекс.рф) stays unmodified

Permite/desactiva o suporte IDN, também pode ser utilizado para um controlo preciso através da combinação constantes IDNA_* (excepto IDNA_ERROR_*), ver parâmetro $options em idn_to_ascii() documentação para mais detalhes.

json

Resumo
A opção json é utilizada para carregar facilmente dados codificados JSON como a corpo de um pedido. Um cabeçalho Content-Type de application/json será adicionado se nenhum cabeçalho Content-Type já estiver presente na mensagem.
Tipos
Qualquer tipo de PHP que possa ser operado pela função json_encode().
Por defeito
Nenhum
Constante
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Eis um exemplo de utilização do tap middleware para ver que pedido é enviado através do fio.

use GuzzleHttp\Middleware;

// Create a middleware that echoes parts of the request.
$tapMiddleware = Middleware::tap(function ($request) {
    echo $request->getHeaderLine('Content-Type');
    // application/json
    echo $request->getBody();
    // {"foo":"bar"}
});

// The $handler variable is the handler passed in the
// options to the client constructor.
$response = $client->request('PUT', '/put', [
    'json'    => ['foo' => 'bar'],
    'handler' => $tapMiddleware($handler)
]);

Nota

Esta opção de pedido não suporta a personalização do cabeçalho Content-Type ou qualquer uma das opções do PHP json_encode() função. Se precisar de personalizar estas definições, então deve passar a O próprio JSON codificou os dados no pedido usando o pedido body e deve especificar o cabeçalho Content-Type correcto usando a opção headers request option.

Esta opção não pode ser utilizada com body, form_params, ou multipart

multipart

Resumo
Define o corpo do pedido para uma forma multipartes/dados .
Tipos
matriz
Constante
GuzzleHttp\RequestOptions::MULTIPART

O valor de multipart é um conjunto de matrizes associativas, cada uma contendo os seguintes pares de valores chave:

  • name: (string, obrigatório) o nome do campo do formulário
  • contents: (StreamInterface/resource/string, necessário) Os dados a utilizar em o elemento forma.
  • headers: (matriz) Matriz associativa opcional de cabeçalhos personalizados para utilizar com o elemento forma.
  • filename: (string) String opcional a enviar como nome de ficheiro na peça.
use GuzzleHttp\Psr7;

$client->request('POST', '/post', [
    'multipart' => [
        [
            'name'     => 'foo',
            'contents' => 'data',
            'headers'  => ['X-Baz' => 'bar']
        ],
        [
            'name'     => 'baz',
            'contents' => Psr7\Utils::tryFopen('/path/to/file', 'r')
        ],
        [
            'name'     => 'qux',
            'contents' => Psr7\Utils::tryFopen('/path/to/file', 'r'),
            'filename' => 'custom_filename.txt'
        ],
    ]
]);

Nota

multipart não pode ser usado com a opção form_params. Necessitará de utilizar um ou outro. Usar form_params para application/x-www-form-urlencoded. pedidos, e multipart para multipart/form-data pedidos.

Esta opção não pode ser usada com body, form_params, ou json

on_headers

Resumo

Uma chamada que é invocada quando os cabeçalhos HTTP da resposta têm foi recebido, mas o corpo ainda não começou a descarregar

Tipos
  • chamável
Constante

GuzzleHttp\RequestOptions::ON_HEADERS

O chamável aceita um objecto Psr\Http\Message\ResponseInterface. Se uma excepção é atirada pelo chamável, então a promessa associada à resposta ser rejeitado com um GuzzleHttp\Exception\RequestException que envolve o excepção que foi atirada.

Talvez seja necessário saber que cabeçalhos e códigos de estado foram recebidos antes de os dados poderem ser escritos no lavatório.

// Reject responses that are greater than 1024 bytes.
$client->request('GET', 'http://httpbin.org/stream/1024', [
    'on_headers' => function (ResponseInterface $response) {
        if ($response->getHeaderLine('Content-Length') > 1024) {
            throw new \Exception('The file is too big!');
        }
    }
]);

Nota

Ao escrever manipuladores HTTP, a função on_headers deve ser invocada antes de escrever dados para o corpo da resposta.

on_stats

Resumo

on_stats permite-lhe ter acesso às estatísticas de transferência de um solicitar e aceder aos detalhes de transferência de nível inferior do manipulador associado ao seu cliente. on_stats é uma chamada que se pode invocar quando um manipulador tiver terminado de enviar um pedido. A chamada de retorno é invocada com estatísticas de transferência sobre o pedido, a resposta recebida, ou o erro encontrado. Incluído nos dados está o total de tempo gasto para enviar o pedido

Tipos
  • chamável
Constante

GuzzleHttp\RequestOptions::ON_STATS

O chamável aceita um objecto GuzzleHttp\TransferStats.

use GuzzleHttp\TransferStats;

$client = new GuzzleHttp\Client();

$client->request('GET', 'http://httpbin.org/stream/1024', [
    'on_stats' => function (TransferStats $stats) {
        echo $stats->getEffectiveUri() . "\n";
        echo $stats->getTransferTime() . "\n";
        var_dump($stats->getHandlerStats());

        // You must check if a response was received before using the
        // response object.
        if ($stats->hasResponse()) {
            echo $stats->getResponse()->getStatusCode();
        } else {
            // Error data is handler specific. You will need to know what
            // type of error data your handler uses before using this
            // value.
            var_dump($stats->getHandlerErrorData());
        }
    }
]);

progress

Resumo

Define uma função a invocar quando o progresso da transferência é feito

Tipos
  • chamável
Por defeito

None

Constante

GuzzleHttp\RequestOptions::PROGRESS

A função aceita os seguintes argumentos posicionais:

  • o número total de bytes que se espera descarregar, zero se desconhecido
  • o número de bytes descarregados até agora
  • o número total de bytes que se espera que sejam carregados
  • o número de bytes carregados até ao momento
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Resumo

Passar uma string para especificar um proxy HTTP, ou um array para especificar diferentes procuradores para diferentes protocolos

Tipos
  • string
  • array
Por defeito

None

Constante

GuzzleHttp\RequestOptions::PROXY

Passar uma string para especificar um proxy para todos os protocolos.

$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);

Passar uma matriz associativa para especificar proxies HTTP para esquemas específicos de URI (ou seja, "http", "https"). Fornecer um par de valores chave no para fornecer uma lista de nomes de anfitriões que não devem ser procurados.

Nota

O Guzzle irá preencher automaticamente este valor com o seu ambiente NO_PROXY variável de ambiente. No entanto, ao fornecer uma variável de ambiente proxy. opção de pedido, cabe-lhe a si fornecer o valor no parsed from a variável de ambiente NO_PROXY (por exemplo, explode(',', getenv('NO_PROXY')))).

$client->request('GET', '/', [
    'proxy' => [
        'http'  => 'http://localhost:8125', // Use this proxy with "http"
        'https' => 'http://localhost:9124', // Use this proxy with "https",
        'no' => ['.mit.edu', 'foo.com']    // Don't use a proxy with these
    ]
]);

Nota

Pode fornecer URLs proxy que contenham um esquema, nome de utilizador, e palavra-passe. Por exemplo, "[email protected]:10".

query

Resumo

Matriz associativa de valores de query string ou query string para adicionar a o pedido

Tipos
  • array
  • string
Por defeito

None

Constante

GuzzleHttp\RequestOptions::QUERY

// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);

As strings de consulta especificadas na opção query irão sobrescrever todos os valores de strings de consulta fornecidos no URI de um pedido.

// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);

read_timeout

Resumo
Flutuação descrevendo o tempo limite a utilizar na leitura de um corpo transmitido
Tipos
flutuador
Por defeito
O valor por defeito do default_socket_timeout PHP ini setting
Constante
GuzzleHttp\RequestOptions::READ_TIMEOUT

O tempo limite aplica-se a operações individuais de leitura num corpo transmitido (quando a opção stream está activada).

$response = $client->request('GET', '/stream', [
    'stream' => true,
    'read_timeout' => 10,
]);

$body = $response->getBody();

// Returns false on timeout
$data = $body->read(1024);

// Returns false on timeout
$line = fgets($body->detach());

sink

Resumo

Especificar onde o corpo de uma resposta será salvo

Tipos
  • string (caminho para arquivar em disco)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Por defeito

PHP temp stream

Constante

GuzzleHttp\RequestOptions::SINK

Passar um fio para especificar o caminho para um ficheiro que irá armazenar o conteúdo do corpo de resposta:

$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);

Passe um recurso retornado de fopen() para escrever a resposta a um fluxo PHP:

$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);

Pass a Psr\Http\Message\StreamInterface object to stream the response body to an open PSR-7 stream.

$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);

Nota

A opção de pedido save_to foi depreciada em favor da opção de pedido sink. Desde que a opção save_to seja agora um pseudónimo de sink.

ssl_key

Resumo

Especificar o caminho para um ficheiro contendo uma chave privada SSL no PEM formato. Se for necessária uma palavra-passe, então definir para uma matriz contendo o caminho para a chave SSL no primeiro elemento da matriz, seguido da palavra-passe necessária para o certificado no segundo elemento

Tipos
  • string
  • array
Por defeito

None

Constante

GuzzleHttp\RequestOptions::SSL_KEY

Nota

ssl_key é implementado por manipuladores HTTP. Actualmente, isto é apenas apoiado pelo manipulador do cURL, mas pode ser apoiado por outra terceira parte manipuladores.

stream

Resumo
Definir para true para transmitir uma resposta em vez de a descarregar toda à cabeça.
Tipos
bool
Por defeito
false
Constante
GuzzleHttp\RequestOptions::STREAM
$response = $client->request('GET', '/stream/20', ['stream' => true]);
// Read bytes off of the stream until the end of the stream is reached
$body = $response->getBody();
while (!$body->eof()) {
    echo $body->read(1024);
}

Nota

O suporte de resposta em fluxo contínuo deve ser implementado pelo manipulador de HTTP utilizado por um cliente. Esta opção pode não ser suportada por todos os manipuladores de HTTP, mas o interface do objecto de resposta permanece a mesma, independentemente do facto de não é apoiado pelo manipulador.

síncrono

Resumo
Definir para true para informar os manipuladores HTTP que pretende esperar no resposta. Isto pode ser útil para optimizações.
Tipos
bool
Por defeito
nenhuma
Constante
GuzzleHttp\RequestOptions::SYNCHRONOUS

verify

Resumo

Descreve o comportamento de verificação do certificado SSL de um pedido

  • Defina para true para permitir a verificação do certificado SSL e utilizar o padrão Pacote CA fornecido pelo sistema operativo
  • Definir para false para desactivar a verificação do certificado (isto é inseguro!)
  • Ajustar a uma corda para fornecer o caminho para um pacote de CA para permitir a verificação utilizando um certificado personalizado
Tipos
  • bool
  • string
Por defeito

true

Constante

GuzzleHttp\RequestOptions::VERIFY

// Use the system's CA bundle (this is the default setting)
$client->request('GET', '/', ['verify' => true]);

// Use a custom SSL certificate on disk.
$client->request('GET', '/', ['verify' => '/path/to/cert.pem']);

// Disable validation entirely (don't do this!).
$client->request('GET', '/', ['verify' => false]);

Se não precisar de um pacote de certificados específico, então a Mozilla fornece um pacote de CA de uso comum que pode ser descarregado here (fornecido pelo mantenedor do cURL). Uma vez que tenha um pacote CA disponível em pode definir a configuração ini PHP "openssl.cafile" para apontar o caminho para o disco o ficheiro, permitindo-lhe omitir a opção de pedido de "verificação". Muito mais detalhes sobre Os certificados SSL podem ser encontrados no cURL website.

timeout

Resumo
Flutuação descrevendo o tempo de espera total do pedido em segundos. Utilizar 0. esperar indefinidamente (o comportamento por defeito).
Tipos
flutuador
Por defeito
0
Constante
GuzzleHttp\RequestOptions::TIMEOUT
// Timeout if a server does not return a response in 3.14 seconds.
$client->request('GET', '/delay/5', ['timeout' => 3.14]);
// PHP Fatal error:  Uncaught exception 'GuzzleHttp\Exception\TransferException'

version

Resumo
Versão do protocolo a utilizar com o pedido.
Tipos
fio, flutuador
Por defeito
1.1
Constante
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);