Как установить заголовок по умолчанию в Guzzle?

$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 

Related of "Как установить заголовок по умолчанию в Guzzle?"

 $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);