为了安全,我们的web服务主机往往不能上网。维护的时候,也是通过跳板机,ssh登录后去操作。

有时候我们的程序需要访问外网。比如需要调用外网其他程序的某个接口。这下该怎么办呢?

我们可以通过PHP的CURL函数的CURLOPT_HTTPHEADER来配置设置host访问。

在开发中,我遇到这样一个例子。

有一个活动程序,需要调用qzone那边的一个接口。

如下代码示例:

$host = array("Host: act.qzone.qq.com");
$data = 'user=xxx&qq=xxx&id=xxx&post=xxx';
$url = 'http://192.168.1.12/xxx/xxx/api/';
var_dump( $this->curl_post($host, $data,$url) ); /
* 提交请求
* @param $host array 需要配置的域名 array("Host: act.qzone.qq.com");
* @param $data string 需要提交的数据 'user=xxx&qq=xxx&id=xxx&post=xxx'....
* @param $url string 要提交的url 'http://192.168.1.12/xxx/xxx/api/';
*/
function curl_post($host,$data,$url)
{
$ch = curl_init();
$res= curl_setopt ($ch, CURLOPT_URL,$url);
var_dump($res);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$host);
$result = curl_exec ($ch);
curl_close($ch);
if ($result == NULL) {
return 0;
}
TMDebugUtils::debugLog($result);
return $result;
}

通过PHP CURL CURLOPT_HTTPHEADER设置HOST很方便的解决了访问外网接口的问题。

摘自:http://www.gosoa.com.cn/php-curl-curlopt_httpheader%E8%AE%BE%E7%BD%AEhost

最新文章

  1. Theano2.1.21-基础知识之theano中多核的支持
  2. Maven项目在Eclipse中调试 Debug
  3. 第九课:js的类与继承
  4. linux 切换多个jdk脚本
  5. linux 安装java环境(jdk)
  6. SQL SERVER 2008R2sp1配置Database Mail –用SQL 数据库发邮件
  7. Linux命令之初出茅庐
  8. elasticsearch 学习笔记
  9. Raspberry pi connect temperature and humidity to onenet (移动云平台)
  10. 机器学习之SVD分解
  11. Container的简单认识
  12. linux下构建MysqlCluster集群,NDB搜索引擎
  13. JIRA项目管理搭建
  14. asp.net mvc 5框架揭秘(文摘)
  15. JProfiler 5.1.4的使用方法
  16. jQuery通过text值来设置选定,以及遍历select的选项个数和遍历
  17. mysql-5.7.15-winx64配置
  18. 加固mysql服务器
  19. SpringMVC 静态资源处理
  20. Java 通过 HTTP 下载文件

热门文章

  1. 《Inside UE4》目录
  2. [C#] 逆袭——自制日刷千题的AC自动机攻克HDU OJ
  3. Python 数据类型及其用法
  4. MAC下搭建及使用XAMPP的详细教程
  5. kendo ui简介
  6. ThinkPHP跨控制器调用方法
  7. TCP connect的错误返回值
  8. C#-WebForm-表单元素
  9. android 动画
  10. Android Studio使用