在代理后面运行Laravel本地服务器

时间:2020-01-31 14:49:42

标签: laravel proxy localserver

我有一个laravel项目。该项目向api发送数据或从api接收数据。此api检查我的服务器ip地址,以确保它是我(这是银行的api)。我将真实服务器的代理设置为Windows代理设置,API知道我服务器的IP。问题是当我在本地运行laravel时,它不使用我的系统代理设置。 我刚刚测试了api和代理设置,使用邮递员时没有问题。 我尝试了这些:

  1. Control Panel\Network and Internet\Internet Options中设置代理和端口。
  2. 在系统设置(Windows 10设置)中设置代理和端口。
  3. 项目文件夹set http_proxy=http://***.***.***.***:****/set https_proxy=http://***.***.***.***:****/中使用的命令。

我的操作系统:Windows 10和 laravel版本:6

1 个答案:

答案 0 :(得分:0)

我们可以分别为每个部分设置代理设置。例如,如果您使用PHP cURL将请求发送到api,则可以这样做:

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_URL            => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING       => "",
    CURLOPT_MAXREDIRS      => 10,
    CURLOPT_TIMEOUT        => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
    CURLOPT_PROXY          => 'PROXY:PORT', // or USER:PASS@PROXY:PORT if your proxy need authentication
    CURLOPT_CUSTOMREQUEST  => $method,
    CURLOPT_POSTFIELDS     => $body,
    CURLOPT_HTTPHEADER     => $header,
));
$response = curl_exec($ch);
curl_close($ch);

或者如果您使用SoapClient:

$soap = new SoapClient('URL', [  // Replace "URL" with your api URL
    'proxy_host'     => 'HOST',  // Replace "HOST" with your proxy address
    'proxy_port'     => 'PORT',  // Replace "PORT" with your proxy port
    'proxy_login'    => 'USER',  // Replace "USER" with your proxy authentication username. 
                                 // (if your proxy server needs authentication,
                                 // otherwise delete this line and below line.)
    'proxy_password' => 'PASS',  //Replace "PASS" with your proxy authentication username.
]);