我有一个laravel项目。该项目向api发送数据或从api接收数据。此api检查我的服务器ip地址,以确保它是我(这是银行的api)。我将真实服务器的代理设置为Windows代理设置,API知道我服务器的IP。问题是当我在本地运行laravel时,它不使用我的系统代理设置。 我刚刚测试了api和代理设置,使用邮递员时没有问题。 我尝试了这些:
Control Panel\Network and Internet\Internet Options
中设置代理和端口。set http_proxy=http://***.***.***.***:****/
和set https_proxy=http://***.***.***.***:****/
中使用的命令。我的操作系统:Windows 10和 laravel版本:6
答案 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.
]);