Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel Ingresso API{“error”message:“您必须支持\u0027gzip\u0027才能使用F13”_Laravel_Curl_Gzip_Guzzle_Octobercms - Fatal编程技术网

Laravel Ingresso API{“error”message:“您必须支持\u0027gzip\u0027才能使用F13”

Laravel Ingresso API{“error”message:“您必须支持\u0027gzip\u0027才能使用F13”,laravel,curl,gzip,guzzle,octobercms,Laravel,Curl,Gzip,Guzzle,Octobercms,API url为=,我正在尝试实现: 我在OctoberCMS中使用GuzzleHttp\Client对象的代码 $credentials = base64_encode('demo:demopass'); $client = new Client(); $request_url = 'https://demo.ticketswitch.com/f13/events.v1/'; $response = $client->request('GET', $re

API url为=,我正在尝试实现:

我在OctoberCMS中使用GuzzleHttp\Client对象的代码

    $credentials = base64_encode('demo:demopass');
    $client = new Client();
    $request_url = 'https://demo.ticketswitch.com/f13/events.v1/';
    $response = $client->request('GET', $request_url, [
        'headers' => ['Accept' => 'application/json','Authorization' => 'Basic ' . $credentials,],
        'auth'    => ['demo', 'demopass'],
        'timeout' => 120
    ])->getBody()->getContents();

    echo "<pre>";
    print_r($response);
    die();
$credentials=base64_encode('demo:demopass');
$client=新客户端();
$request\u url='1https://demo.ticketswitch.com/f13/events.v1/';
$response=$client->request('GET',$request\u url[
'headers'=>['Accept'=>'application/json','Authorization'=>'Basic'.$credentials,],
'auth'=>['demo','demopass'],
“超时”=>120
])->getBody()->getContents();
回声“;
打印(回复);
模具();
通过发送请求得到的错误为

我正在阅读所有建议的问题,而我正在为问题添加标题,并且没有关于该问题的线索或帮助。。。 帮助


注意:Api凭据可供任何用户或开发人员使用,

错误表示请求必须是gzip:“您必须支持gzip[才能使用此Api]”

这是通过发送到服务器的标头控制的:

Accept Encoding request HTTP标头公布客户端能够理解的内容编码(通常是压缩算法)

服务器执行此操作是为了确保客户端在使用API时通过使用压缩节省带宽。这可能会降低托管成本和/或提高请求性能。F13文档简单地指出“gzip必须用于所有请求”

启用gzip传输压缩的使用包含在以下内容中:

或者,更简单地说

当[解码内容设置]为字符串时,将解码响应的字节,并将提供给解码内容选项的字符串值作为请求的接受编码头传递


感谢@user2864740@MuhammadAwaisZulifqar,其他标题/选项保持不变。把它们加在一起。使用更简单的
'decode\u content'=>'gzip'
方法应该会使这一点更简单、更清晰(即,它可以直接添加到
超时=>120
行下方)。$response=$client->request('GET',$request\u url,['headers'=>['Accept-Encoding'=>'gzip','auth'=>['demo','demopass]],'decode_content'=>true])->getBody()->getContents();尝试但不起作用?@MuhammadAwaisZulifqar这是另一个错误吗?如果是的话,那是另一个问题。此外,该代码与问题中显示的代码不同。。我非常怀疑“auth”是一个标题,所以这是一个倒退。它也可以写成:
$client->request('GET',$request\u url,['decode\u content'=>'gzip','auth'=>['demo','demopass']])
;我首先“明确地”介绍了Accept编码头作为背景信息。
// Request gzipped data and automatically decode/decompress it
$client->request('GET', '/foo.js', [
    'headers'        => ['Accept-Encoding' => 'gzip'],
    'decode_content' => true  // default is true, added to be explicit
]);
// Pass "gzip" as the Accept-Encoding header and automatically decode/decompress
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);