现在位置首页 / 项目实战 /正文

php 模拟post数据给ashx

作者: IT小兵 | 2015年8月13日| 热度:℃ | 评论: |参与:

出现这个方法也是万般无奈之举。

背景:

2个系统需要整合,A是php的,B是.net的,.net的数据处理全是使用ashx一般处理程序。将.net界面这个到php,最简单的办法就是使用原来的ashx处理程序处理数据。

但是js调用ashx又出现了跨域的问题。

所以出现了这个php 代理功能:经发送给php的post请求,透转给ashx,实现跨域请求。

代码如下:

$ashxurl=$_POST["url"];
$postdata=$_POST;
$HostUrl="http://localhost:58486/";///Service/AAA.ashx
$result=curlPost($HostUrl.$ashxurl,$postdata);
 
echo json_encode($result);
 
      
      function curlPost($url = '',$param = ''){
          $curl = curl_init(); // 启动一个CURL会话
          curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
          curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
          curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
          curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
          curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
          curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
          curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
          curl_setopt($curl, CURLOPT_POSTFIELDS, $param); // Post提交的数据包
          curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
          curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
          $output = curl_exec($curl); // 执行操作
          if (curl_errno($curl)) {
              return 'Errno'.curl_error($curl);//捕抓异常
          }
          curl_close($curl); // 关闭CURL会话
          return $output; // 返回数据
      }
 
?>


点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:suchso@vip.qq.com

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

抢天猫双11红包
推荐使用阿里云服务器
echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:suchso@vip.qq.com

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询