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'); }