]> git.mxchange.org Git - friendica.git/blobdiff - src/Network/HTTPRequest.php
Revert "Use last entry for Content-Type"
[friendica.git] / src / Network / HTTPRequest.php
index 68cadee93d1b4bedf4b8bc58dfec787a132e0803..c37db4c9a06a7aa5abe6a14e98076853c63f4001 100644 (file)
@@ -102,11 +102,17 @@ class HTTPRequest implements IHTTPRequest
                //      $curlOptions[CURLOPT_MAXREDIRS] = 5;
 
                if (!empty($opts['accept_content'])) {
-                       $curlOptions[CURLOPT_HTTPHEADER][] = ['Accept: ' . $opts['accept_content']];
+                       if (empty($curlOptions[CURLOPT_HTTPHEADER])) {
+                               $curlOptions[CURLOPT_HTTPHEADER] = [];
+                       }
+                       array_push($curlOptions[CURLOPT_HTTPHEADER], 'Accept: ' . $opts['accept_content']);
                }
 
                if (!empty($opts['header'])) {
-                       $curlOptions[CURLOPT_HTTPHEADER][] = $opts['header'];
+                       if (empty($curlOptions[CURLOPT_HTTPHEADER])) {
+                               $curlOptions[CURLOPT_HTTPHEADER] = [];
+                       }
+                       $curlOptions[CURLOPT_HTTPHEADER] = array_merge($opts['header'], $curlOptions[CURLOPT_HTTPHEADER]);
                }
 
                $curlOptions[CURLOPT_RETURNTRANSFER] = true;
@@ -124,7 +130,10 @@ class HTTPRequest implements IHTTPRequest
                $curlOptions[CURLOPT_ENCODING] = '';
 
                if (!empty($opts['headers'])) {
-                       $curlOptions[CURLOPT_HTTPHEADER][] = $opts['headers'];
+                       if (empty($curlOptions[CURLOPT_HTTPHEADER])) {
+                               $curlOptions[CURLOPT_HTTPHEADER] = [];
+                       }
+                       $curlOptions[CURLOPT_HTTPHEADER] = array_merge($opts['headers'], $curlOptions[CURLOPT_HTTPHEADER]);
                }
 
                if (!empty($opts['nobody'])) {
@@ -191,11 +200,12 @@ class HTTPRequest implements IHTTPRequest
                        'allow_redirect' => [
                                'max' => 8,
                                'on_redirect' => $onRedirect,
-                               'on_headers' => $onHeaders,
                                'track_redirect' => true,
                                'strict' => true,
                                'referer' => true,
                        ],
+                       'on_headers' => $onHeaders,
+                       'sink' => tempnam(get_temppath(), 'guzzle'),
                        'curl' => $curlOptions
                ]);
 
@@ -205,9 +215,9 @@ class HTTPRequest implements IHTTPRequest
                } catch (TransferException $exception) {
                        if ($exception instanceof RequestException &&
                                $exception->hasResponse()) {
-                               return new GuzzleResponse($exception->getResponse(), $url, $exception->getCode(), $exception->getMessage());
+                               return new GuzzleResponse($exception->getResponse(), $url, $exception->getCode(), '');
                        } else {
-                               return new CurlResult($url, '', ['http_code' => $exception->getCode()], $exception->getCode(), $exception->getMessage());
+                               return new CurlResult($url, '', ['http_code' => $exception->getCode()], $exception->getCode(), '');
                        }
                } finally {
                        $this->profiler->saveTimestamp($stamp1, 'network');