Merge pull request #21054 from nextcloud/feature/noid/default-gzip-encoding-for-http-clients

Allow gzip encoded requests by default
This commit is contained in:
Morris Jobke 2020-05-20 15:49:20 +02:00 committed by GitHub
commit 0a45f44beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 47 deletions

View File

@ -98,11 +98,12 @@ abstract class Fetcher {
$options = [
'timeout' => 10,
'headers' => ['Accept-Encoding' => 'gzip'],
];
if ($ETag !== '') {
$options['headers']['If-None-Match'] = $ETag;
$options['headers'] = [
'If-None-Match' => $ETag,
];
}
$client = $this->clientService->newClient();

View File

@ -89,6 +89,10 @@ class Client implements IClient {
$options[RequestOptions::HEADERS]['User-Agent'] = 'Nextcloud Server Crawler';
}
if (!isset($options[RequestOptions::HEADERS]['Accept-Encoding'])) {
$options[RequestOptions::HEADERS]['Accept-Encoding'] = 'gzip';
}
return $options;
}

View File

@ -249,15 +249,7 @@ abstract class FetcherBase extends TestCase {
$client
->expects($this->once())
->method('get')
->with(
$this->equalTo($this->endpoint),
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
]
])
)
->with($this->endpoint)
->willReturn($response);
$response
->expects($this->once())
@ -350,15 +342,7 @@ abstract class FetcherBase extends TestCase {
$client
->expects($this->once())
->method('get')
->with(
$this->equalTo($this->endpoint),
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
]
])
)
->with($this->endpoint)
->willReturn($response);
$response
->expects($this->once())
@ -446,15 +430,7 @@ abstract class FetcherBase extends TestCase {
$client
->expects($this->once())
->method('get')
->with(
$this->equalTo($this->endpoint),
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
]
])
)
->with($this->endpoint)
->willReturn($response);
$response
->expects($this->once())
@ -519,15 +495,7 @@ abstract class FetcherBase extends TestCase {
$client
->expects($this->once())
->method('get')
->with(
$this->equalTo($this->endpoint),
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
]
])
)
->with($this->endpoint)
->willThrowException(new \Exception());
$this->assertSame([], $this->fetcher->get());
@ -584,8 +552,7 @@ abstract class FetcherBase extends TestCase {
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
'If-None-Match' => '"myETag"',
'If-None-Match' => '"myETag"'
]
])
)->willReturn($response);
@ -657,7 +624,6 @@ abstract class FetcherBase extends TestCase {
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
'If-None-Match' => '"myETag"',
]
])
@ -744,9 +710,6 @@ abstract class FetcherBase extends TestCase {
$this->equalTo($this->endpoint),
$this->equalTo([
'timeout' => 10,
'headers' => [
'Accept-Encoding' => 'gzip',
],
])
)
->willReturn($response);

View File

@ -292,6 +292,7 @@ class ClientTest extends \Test\TestCase {
],
'headers' => [
'User-Agent' => 'Nextcloud Server Crawler',
'Accept-Encoding' => 'gzip',
],
'timeout' => 30,
];
@ -467,7 +468,8 @@ class ClientTest extends \Test\TestCase {
$this->assertEquals([
'verify' => \OC::$SERVERROOT . '/resources/config/ca-bundle.crt',
'headers' => [
'User-Agent' => 'Nextcloud Server Crawler'
'User-Agent' => 'Nextcloud Server Crawler',
'Accept-Encoding' => 'gzip',
],
'timeout' => 30,
], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
@ -502,7 +504,8 @@ class ClientTest extends \Test\TestCase {
'https' => 'foo'
],
'headers' => [
'User-Agent' => 'Nextcloud Server Crawler'
'User-Agent' => 'Nextcloud Server Crawler',
'Accept-Encoding' => 'gzip',
],
'timeout' => 30,
], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
@ -538,7 +541,8 @@ class ClientTest extends \Test\TestCase {
'no' => ['bar']
],
'headers' => [
'User-Agent' => 'Nextcloud Server Crawler'
'User-Agent' => 'Nextcloud Server Crawler',
'Accept-Encoding' => 'gzip',
],
'timeout' => 30,
], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));