PHP中Curl如何使请求的域名被解析到指定IP上
我们在测试的时候会遇到一个情况,就是在做上线前的接口测试的时候,想要模拟真实的环境,那么接口的域名地址是少不了的,这个情况下,我们又不想直接调用线上的数据,想通过域名跟IP的映射,调用另外一台机器上的代码【即将要上线的代码】。可以采用php中curl的参数配置来操作,具体如下:
这里的Curl使用的是ixudra/curl
简单的实例代码如下
$response = Curl::to($host)
->enableDebug('/usr/local/openresty/nginx/html/api.qeeniao.com/qeeniao/storage/logs/laravel-2017-11-03.log')
->withOption('RESOLVE',['xxx.xxxx.com:443:xxx.xxx.xxx.xxx'])
->withData($params)->get();
其实熟悉curl的话对这个就不陌生了
curl --resolve fdh5imgcdn.oz1997.com:443:58.216.109.182
如果不用ixudra/curl的话,可以参照下面的代码使用,效果其实是一样的
$resolve = array(sprintf(
"%s:%d:%s",
$hostname,
$port,
$host_ip
));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RESOLVE, $resolve);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/808
版权声明
由 durban创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/808