1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace OBRSDK\HttpClient\Nucleo; |
4
|
|
|
|
5
|
|
|
/** |
6
|
|
|
* @author Antonio |
7
|
|
|
* @since 01/11/2017 |
8
|
|
|
*/ |
9
|
|
|
class ApiRequisicao extends \OBRSDK\DebugMode { |
10
|
|
|
|
11
|
|
|
/** |
12
|
|
|
* |
13
|
|
|
* @var \GuzzleHttp\Client |
14
|
|
|
*/ |
15
|
|
|
private $cliente; |
16
|
|
|
private $tipoRequisicao; |
17
|
|
|
private $urlRequisicao; |
18
|
|
|
|
19
|
|
|
/** |
20
|
|
|
* |
21
|
|
|
* @var ApiData |
22
|
|
|
*/ |
23
|
|
|
private $data; |
24
|
|
|
|
25
|
|
|
public function __construct(\GuzzleHttp\Client $cliente, $tipoRequisicao, $urlRequisicao, ApiData $data) { |
26
|
|
|
$this->cliente = $cliente; |
27
|
|
|
$this->tipoRequisicao = $tipoRequisicao; |
28
|
|
|
$this->urlRequisicao = $urlRequisicao; |
29
|
|
|
$this->data = $data; |
30
|
|
|
} |
31
|
|
|
|
32
|
|
|
/** |
33
|
|
|
* |
34
|
|
|
* @return string |
35
|
|
|
*/ |
36
|
|
|
public function getRespostaConteudo() { |
37
|
|
|
$this->debugDadosEnviado($this->urlRequisicao, $this->tipoRequisicao, $this->data->getData()); |
38
|
|
|
try { |
39
|
|
|
$respostaRequisicao = $this->requisitarHttp(); |
40
|
|
|
$conteudoRecebido = $respostaRequisicao->getBody()->getContents(); |
41
|
|
|
$this->debugDadosRecebido($this->urlRequisicao, $this->tipoRequisicao, $conteudoRecebido, $respostaRequisicao->getHeaders(), $respostaRequisicao->getStatusCode()); |
42
|
|
|
|
43
|
|
|
return $conteudoRecebido; |
44
|
|
|
} catch (\GuzzleHttp\Exception\BadResponseException $ex) { |
45
|
|
|
$resultado = $ex->getResponse()->getBody()->getContents(); |
46
|
|
|
$this->debugDadosRecebido($this->urlRequisicao, $this->tipoRequisicao, $resultado, $ex->getResponse()->getHeaders(), $ex->getResponse()->getStatusCode()); |
47
|
|
|
throw new \OBRSDK\Exceptions\RespostaException($resultado); |
48
|
|
|
} |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
private function requisitarHttp() { |
52
|
|
|
if ($this->data->getDataSize() > 0) { |
53
|
|
|
return $this->cliente->request($this->tipoRequisicao, $this->urlRequisicao, $this->data->getData()); |
54
|
|
|
} else { |
55
|
|
|
return $this->cliente->request($this->tipoRequisicao, $this->urlRequisicao); |
56
|
|
|
} |
57
|
|
|
} |
58
|
|
|
|
59
|
|
|
} |
60
|
|
|
|