3namespace ceLTIc\LTI\Http;
26 if (!is_array($message->requestHeaders)) {
27 $message->requestHeaders = array();
29 if (count(preg_grep(
"/^Accept:/i", $message->requestHeaders)) === 0) {
30 $message->requestHeaders[] =
'Accept: */*';
32 if (($message->
getMethod() !==
'GET') && !is_null($message->request) &&
33 (count(preg_grep(
"/^Content-Type:/i", $message->requestHeaders)) === 0)) {
34 $message->requestHeaders[] =
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8';
38 'content' => $message->request,
39 'header' => $message->requestHeaders,
40 'ignore_errors' =>
true,
43 $message->requestHeaders =
"{$message->getMethod()} {$message->getUrl()}\n" . implode(
"\n", $message->requestHeaders);
45 $ctx = stream_context_create([
'http' => $opts]);
46 $fp = @fopen($message->
getUrl(),
'rb',
false, $ctx);
48 $resp = stream_get_contents($fp);
49 $message->ok = $resp !==
false;
51 $message->response = $resp;
53 if (isset($http_response_header[0])) {
54 $message->responseHeaders = trim(implode(
"\n", $http_response_header));
55 if (preg_match(
"/HTTP\/\d.\d\s+(\d+)/", $http_response_header[0], $out)) {
56 $message->status = $out[1];
58 $message->ok = $message->status < 400;
60 $message->error = $http_response_header[0];
66 }
catch (\Exception $e) {
67 $message->error = $e->getMessage();
71 $message->error = error_get_last()[
"message"];
Class to represent an HTTP message request.
getUrl()
Get the target URL for the request.
getMethod()
Get the HTTP method for the request.
Class to implement the HTTP message interface using a file stream.
send(HttpMessage $message)
Send the request to the target URL.
Interface to represent an HTTP message client.