Pode personalizar os pedidos criados e transferidos por um cliente usando
Todos os exemplos seguintes utilizam o seguinte cliente:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Descreve o comportamento de redireccionamento de um pedido
[
'max' => 5,
'strict' => false,
'referer' => falso,
'protocols' => ['http', 'https'],
'track_redirects' => falso
]
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.
: (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
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á.
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.
None
GuzzleHttp\RequestOptions::AUTH
Os tipos de autenticação incorporados são os seguintes:
Authorization
(a configuração padrão utilizada se nenhuma for
especificado).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$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.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Nota
Isto só é actualmente suportado quando se utiliza o manipulador cURL.
A opção body
é utilizada para controlar o corpo de uma entidade
anexando pedido (por exemplo, PUT, POST, PATCH)
fopen()
resourcePsr\Http\Message\StreamInterface
None
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
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
None
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
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.
0
para esperar indefinidamente (o comportamento por defeito).0
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.
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
fopen()
resourceNone
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
Especificar se Content-Encoding
responses (gzip,
deflacionar, etc.) são automaticamente descodificados
true
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']);
O número de milissegundos a atrasar antes de enviar o pedido
null
GuzzleHttp\RequestOptions::DELAY
Controla o comportamento do cabeçalho "Expect: 100-Continue"
1048576
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.
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.
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
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']]);
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.true
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
.
Suporte a Nome de Domínio Internacionalizado (IDN) (activado por defeito se
intl
extensão está disponível)
true
if intl
extension is available (and ICU library is 4.6+ for PHP 7.2+), false
otherwise
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
é 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.json_encode()
.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
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áriocontents
: (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
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
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
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
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());
}
}
]);
Define uma função a invocar quando o progresso da transferência é feito
None
GuzzleHttp\RequestOptions::PROGRESS
A função aceita os seguintes argumentos posicionais:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Passar uma string para especificar um proxy HTTP, ou um array para especificar diferentes procuradores para diferentes protocolos
None
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"
.
Matriz associativa de valores de query string ou query string para adicionar a o pedido
None
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']]);
default_socket_timeout
PHP ini settingGuzzleHttp\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());
Especificar onde o corpo de uma resposta será salvo
fopen()
resourcePsr\Http\Message\StreamInterface
PHP temp stream
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
.
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
None
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.
true
para transmitir uma resposta em vez de a descarregar toda
à cabeça.false
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.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Descreve o comportamento de verificação do certificado SSL de um pedido
true
para permitir a verificação do certificado SSL e utilizar o padrão
Pacote CA fornecido pelo sistema operativofalse
para desactivar a verificação do certificado (isto é inseguro!)true
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.
0
.
esperar indefinidamente (o comportamento por defeito).0
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'
1.1
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);