mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-19 21:18:39 +00:00
Use Response as response
This commit is contained in:
parent
7cce8ca1a6
commit
45b22c780a
|
|
@ -228,9 +228,9 @@ final class Header extends HeaderAbstract
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function get(string $key) : array
|
||||
public function get(string $key = null) : array
|
||||
{
|
||||
return $this->header[\strtolower($key)] ?? [];
|
||||
return $key === null ? $this->header : ($this->header[\strtolower($key)] ?? []);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ final class Rest
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function request(Request $request) : string
|
||||
public static function request(Request $request) : Response
|
||||
{
|
||||
$curl = \curl_init();
|
||||
|
||||
|
|
@ -45,7 +45,14 @@ final class Rest
|
|||
}
|
||||
|
||||
\curl_setopt($curl, \CURLOPT_NOBODY, true);
|
||||
\curl_setopt($curl, \CURLOPT_HEADER, false);
|
||||
|
||||
$headers = $request->getHeader()->get();
|
||||
foreach ($headers as $key => $header) {
|
||||
$headers[$key] = $key . ': ' . \implode('', $header);
|
||||
}
|
||||
|
||||
curl_setopt($curl, \CURLOPT_HTTPHEADER, $headers);
|
||||
\curl_setopt($curl, \CURLOPT_HEADER, true);
|
||||
|
||||
switch ($request->getMethod()) {
|
||||
case RequestMethod::GET:
|
||||
|
|
@ -72,6 +79,27 @@ final class Rest
|
|||
\curl_setopt($curl, \CURLOPT_USERPWD, $request->getUri()->getUserInfo());
|
||||
}
|
||||
|
||||
$cHeaderString = '';
|
||||
$response = new Response();
|
||||
|
||||
curl_setopt($curl, \CURLOPT_HEADERFUNCTION,
|
||||
function($curl, $header) use ($response, &$cHeaderString) {
|
||||
$cHeaderString .= $header;
|
||||
|
||||
$length = \strlen($header);
|
||||
$header = \explode(':', $header, 2);
|
||||
|
||||
if (\count($header) < 2) {
|
||||
return $length;
|
||||
}
|
||||
|
||||
$name = \strtolower(\trim($header[0]));
|
||||
$response->getHeader()->set($name, \trim($header[1]));
|
||||
|
||||
return $length;
|
||||
}
|
||||
);
|
||||
|
||||
\curl_setopt($curl, \CURLOPT_URL, $request->__toString());
|
||||
\curl_setopt($curl, \CURLOPT_RETURNTRANSFER, 1);
|
||||
|
||||
|
|
@ -79,6 +107,8 @@ final class Rest
|
|||
|
||||
\curl_close($curl);
|
||||
|
||||
return \is_bool($result) ? '' : $result;
|
||||
$response->set('', \substr($result, \strlen($cHeaderString)));
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user