Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

StreamClient.php

Zuletzt modifiziert: 09.10.2024, 12:59 - Dateigröße: 3.18 KiB


01  <?php
02   
03  namespace OAuth\Common\Http\Client;
04   
05  use OAuth\Common\Http\Exception\TokenResponseException;
06  use OAuth\Common\Http\Uri\UriInterface;
07   
08  /**
09   * Client implementation for streams/file_get_contents
10   */
11  class StreamClient extends AbstractClient
12  {
13      /**
14       * Any implementing HTTP providers should send a request to the provided endpoint with the parameters.
15       * They should return, in string form, the response body and throw an exception on error.
16       *
17       * @param UriInterface $endpoint
18       * @param mixed        $requestBody
19       * @param array        $extraHeaders
20       * @param string       $method
21       *
22       * @return string
23       *
24       * @throws TokenResponseException
25       * @throws \InvalidArgumentException
26       */
27      public function retrieveResponse(
28          UriInterface $endpoint,
29          $requestBody,
30          array $extraHeaders = array(),
31          $method = 'POST'
32      ) {
33          // Normalize method name
34          $method = strtoupper($method);
35   
36          $this->normalizeHeaders($extraHeaders);
37   
38          if ($method === 'GET' && !empty($requestBody)) {
39              throw new \InvalidArgumentException('No body expected for "GET" request.');
40          }
41   
42          if (!isset($extraHeaders['Content-Type']) && $method === 'POST' && is_array($requestBody)) {
43              $extraHeaders['Content-Type'] = 'Content-Type: application/x-www-form-urlencoded';
44          }
45   
46          $host = 'Host: '.$endpoint->getHost();
47          // Append port to Host if it has been specified
48          if ($endpoint->hasExplicitPortSpecified()) {
49              $host .= ':'.$endpoint->getPort();
50          }
51   
52          $extraHeaders['Host']       = $host;
53          $extraHeaders['Connection'] = 'Connection: close';
54   
55          if (is_array($requestBody)) {
56              $requestBody = http_build_query($requestBody, '', '&');
57          }
58          $extraHeaders['Content-length'] = 'Content-length: '.strlen($requestBody);
59   
60          $context = $this->generateStreamContext($requestBody, $extraHeaders, $method);
61   
62          $level = error_reporting(0);
63          $response = file_get_contents($endpoint->getAbsoluteUri(), false, $context);
64          error_reporting($level);
65          if (false === $response) {
66              $lastError = error_get_last();
67              if (is_null($lastError)) {
68                  throw new TokenResponseException(
69                      'Failed to request resource. HTTP Code: ' .
70                      ((isset($http_response_header[0]))?$http_response_header[0]:'No response')
71                  );
72              }
73              throw new TokenResponseException($lastError['message']);
74          }
75   
76          return $response;
77      }
78   
79      private function generateStreamContext($body, $headers, $method)
80      {
81          return stream_context_create(
82              array(
83                  'http' => array(
84                      'method'           => $method,
85                      'header'           => implode("\r\n", array_values($headers)),
86                      'content'          => $body,
87                      'protocol_version' => '1.1',
88                      'user_agent'       => $this->userAgent,
89                      'max_redirects'    => $this->maxRedirects,
90                      'timeout'          => $this->timeout
91                  ),
92              )
93          );
94      }
95  }
96