FastSitePHP\Net\HttpResponse

This class is returned from HTTP Request functions when using the [HttpClient] class.

Código Fonte

GitHub

Código de Exemplo

Utilizando o Cliente HTTP

// HttpClient pode ser utilizado para simplificar a comunicação com
// outros serviços web, APIs HTTP e funciona muito bem para chamar
// e retornar o resultado de serviços locais - por exemplo um serviço
// AI/ML (Artificial Intelligence / Machine Learning) escrito em
// Python com TensorFlow ou scikit-learn.

// Faça um requisição HTTP GET simples e verifique o resultado
$res = \FastSitePHP\Net\HttpClient::get($url);
if ($res->error) {
    // Um erro seria retornado em uma eventual falha grave como tempo limite
    // atingido ou um erro de certificado SSL. Uma resposta 404 ou 500 do
    // servidor seria tratada verificando o [status_code].
    $error = $res->error;
} else {
    $status_code = $res->status_code; // 200, 404, 500 etc
    $headers = $res->headers; // Array de Cabeçalhos de Resposta
    $content = $res->content; // Conteúdo da Resposta como uma String - HTML, Texto etc
    $info = $res->info; // Array de Informações como Estatísticas de Tempo
}

// Realize uma Requisição HTTP GET e leia o Resultado JSON. Se o Content-Type
// da Resposta for 'application/json' então [$res->json] conterá um array
// caso contrário, conterá null. Cabeçalhos de Requisição podem receber um
// parâmetro opcional.
$headers = [
    'X-API-Key' => 'ab82050cf5907934fa1d0f6f66284642a01d1ba2280656870c',
    'X-Custom-Header' => 'Teste',
];
$res_json = \FastSitePHP\Net\HttpClient::get($url, $headers);
$json = $res->json;
$text = $res->content;

// Envie uma Requisição HTTP POST como JSON e também como um Form.
// Dados podem ser um Array ou um Objeto e Cabeçalhos são opcionais.
$data = [
    'text' => 'teste',
    'num' => 123,
];
$res_post = \FastSitePHP\Net\HttpClient::postJson($url, $data, $headers);
$res_form = \FastSitePHP\Net\HttpClient::postForm($url, $data);

// Ao utilizar PHP 5.5 ou mais recente, 'multipart/form-data' Form Posts são
// suportados com a classe integrada [CURLFile]:
/*
$data = [
    'field1' => 'teste',
    'file' => new \CURLFile($file_path),
];
*/

// Salve o Conteúdo da Resposta como um Download de Arquivo
// Assim como [postJson ()] e [postForm ()] Request Headers são opcionais.
$res_file = \FastSitePHP\Net\HttpClient::downloadFile($url, $save_path, $headers);
$saved_path = $res_file->content;

// O código de demonstração acima mostra as quatro funções estáticas
// auxiliares [get(), postJson(), postForm() e downloadFile()]. Opções
// adicionais estão disponíveis quando utilizar a HttpClient como um
// objeto com o mesmo método [request()].

// Envie uma Requisição PUT com um arquivo como o Corpo de Requisição
$http = new \FastSitePHP\Net\HttpClient();
$res_put = $http->request($url, [
    'method' => 'PUT',
    'headers' => $headers,
    'send_file' => $file_path,
]);

Propriedades

Nome Tipo de Dados Padrão Descrição
error int 0 Error code if there is a major failure with an HTTP Request such as a timeout or SSL Cert Error.  0 if no error.

The error code is the value returned by [curl_errno()].
status_code int
null
null Status Code of the Response [200, 404, 500, etc].
headers array
null
null HTTP Response Headers
content string
null
null Response Body as a Text String. PHP Strings are array's of bytes so binary responses will also be in string format.
json array
null
null Response Body parsed to an Array for JSON Responses. This can be turned off by setting the option [parse_json = false] from [HttpClient->request()].
info array
null
null Array of detailed information for the request and response from [curl_getinfo()]. Example ($res->info['CURLINFO_TOTAL_TIME']) if set will return the total transaction time in seconds.