最近接到一个需求,假设有A、B、C 三台主机。现A主机要访问C主机上的一个脚本,并且根据A传递的参数给C主机,同时接受C主机返回来的数据。但是现在A主机不能直接通过url、IP访问C主机,需要借由主机B。主要思路:A主机请求B主机并发送数据给B主机,B主机把接受到的数据再发送给C主机,同时接受C主机返回的数据,最后再把此数据返回给A主机。
具体程序如下:
<?php
//绑定的内网的 url 链接 $intranet_url = 'http://localhost/test.php'; //POST 接收传来的数据 $post_param = $_REQUEST; //发送数据 $post_data = $post_param; $return_post = send_post($intranet_url, $post_data); var_dump($return_post); return $return_post; /**提交POST请求**/ function send_post($url, $post_data){ $postdata = http_build_query($post_data);$options = array(
'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $postdata, 'timeout' => 30 // 超时时间(单位:s) ) ); $context = stream_context_create($options); try{ $result = file_get_contents($url, false, $context); return $result; } catch(Exception $e) { $error = 'error:连接超时'; return $error; }}?>