$baseUrl = 'http://foo'; $config = array(); $client = new Guzzle\Http\Client($baseUrl, $config);
Какой новый способ установить заголовок по умолчанию для Guzzle, не передавая его в качестве параметра на каждый столбец $client->post($uri, $headers)
?
Существует $client->setDefaultHeaders($headers)
но он устарел.
setDefaultHeaders is deprecated. Use the request.options array to specify default request options
$client = new Guzzle\Http\Client(); // Set a single header using path syntax $client->setDefaultOption('headers/X-Foo', 'Bar'); // Set all headers $client->setDefaultOption('headers', array('X-Foo' => 'Bar'));
Глянь сюда:
http://docs.guzzlephp.org/en/latest/http-client/client.html#request-options
Если вы используете Guzzle v = 6.0. *
$client = new GuzzleHttp\Client(['headers' => ['X-Foo' => 'Bar']]);
прочитайте документ , есть больше вариантов.
Правильно, старый метод был отмечен как @deprecated. Вот новый предложенный метод установки заголовков по умолчанию для нескольких запросов на клиенте.
// enter base url if needed $url = ""; $headers = array('X-Foo' => 'Bar'); $client = new Guzzle\Http\Client($url, array( "request.options" => array( "headers" => $headers ) ));
это работает для меня, если вы делаете это с drupal:
$url="https://jsonplaceholder.typicode.com/posts"; $client = \Drupal::httpClient(); $post_data = $form_state->cleanValues()->getValues(); $response = $client->request('POST', $url, [ 'headers' => ['Content-Type' => 'application/x-www-form-urlencoded'], 'form_params' => $post_data, 'verify'=>false, ]); $body = $response->getBody()->getContents(); $status = $response->getStatusCode(); dsm($body); dsm($status);