Drupal 8 http client代码及其代理设置

Submitted by admin on Thu, 12/26/2019 - 13:02

Drupal 8 使用代理(目前看下来只支持http(s)代理,不支持socks代理)。如果启用代理,在settings.php添加如下参数:

$settings['http_client_config']['proxy']['http'] = 'http://gfw-proxy:8123';
$settings['http_client_config']['proxy']['https'] = 'http://gfw-proxy:8123';
# $settings['http_client_config']['proxy']['no'] = ['127.0.0.1', 'localhost']; ##这一行的意思是哪些IP不需要使用代理,暂时没测试。可以不使用。
#设置user agent
$settings['http_client_config']['headers']['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36';
#设置超时时间
$settings['http_client_config']['timeout'] = 240;


如下代码进行验证:

$client = \Drupal::httpClient();

try {
  $response = $client->get('https://www.google.com');
  $data = (string)$response->getBody();
  dpm($response->getStatusCode());
  dpm($response->getHeaders(), 'headers');
  dpm($data);
}
catch (RequestException $e) {
 dpm($e->getMessage(), 'error');
}