mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-02-10 14:08:40 +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
|
* @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
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public static function request(Request $request) : string
|
public static function request(Request $request) : Response
|
||||||
{
|
{
|
||||||
$curl = \curl_init();
|
$curl = \curl_init();
|
||||||
|
|
||||||
|
|
@ -45,7 +45,14 @@ final class Rest
|
||||||
}
|
}
|
||||||
|
|
||||||
\curl_setopt($curl, \CURLOPT_NOBODY, true);
|
\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()) {
|
switch ($request->getMethod()) {
|
||||||
case RequestMethod::GET:
|
case RequestMethod::GET:
|
||||||
|
|
@ -72,6 +79,27 @@ final class Rest
|
||||||
\curl_setopt($curl, \CURLOPT_USERPWD, $request->getUri()->getUserInfo());
|
\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_URL, $request->__toString());
|
||||||
\curl_setopt($curl, \CURLOPT_RETURNTRANSFER, 1);
|
\curl_setopt($curl, \CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
|
||||||
|
|
@ -79,6 +107,8 @@ final class Rest
|
||||||
|
|
||||||
\curl_close($curl);
|
\curl_close($curl);
|
||||||
|
|
||||||
return \is_bool($result) ? '' : $result;
|
$response->set('', \substr($result, \strlen($cHeaderString)));
|
||||||
|
|
||||||
|
return $response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user