补充三点说明:
1.Get请求数据根据索引关键字直接从全局变量$_GET中获取(无需再调用urldecode解码)
$_GET 数组 存储Get请求字符串(用&划分字符串为数组,数组元素的形式为:a=b)
2.POST请求字符串形式的数据同样可以根据索引关键字从$_POST中获取
$_POST 数组 存储Post请求字符串(用&划分字符串为数组,数组元素的形式为:a=b)
3.POST请求Xml形式数据存储在$GLOBALS['HTTP_RAW_POST_DATA']中
PHP Post/Get 接收和发送xml格式数据:
1.接收Post Xml数据:
if(array_key_exists('HTTP_RAW_POST_DATA',$GLOBALS) == true)
{
$post_data = $GLOBALS['HTTP_RAW_POST_DATA'];//php接收xml文件的唯一方式
$post_obj = SimpleXml_load_String($post_data,'SimpleXMLElement',LIBXML_NOCDATA);//加载xml
$username = (string)$post_obj->username;//直接获取xml中username的值
$password = (string)$post_obj->password;//直接获取xml中password的值
}
2.发送Post/Get数据
$post_url = "http://192.168.100.250:8080/hook/smspay/***.php";//目的url
$post_str = "
James1234";
$timeout = 10;//连接/响应超时设置,单位秒s
$ch = curl_init();//初始化curl
$header[] = "Content-type: text/xml";//设置http报文头text/xml
curl_setopt($ch, CURLOPT_URL, $post_url);//设置目的URL
curl_setopt($ch, CURLOPT_POST, 1);//1:post方式 0:get方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);//设置将要发送的数据
curl_setopt($ch, CURLOPT_HEADER, 0);//1:显示 0:不显示
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);//响应超时
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//连接超时
$rtn = curl_exec($ch);//执行发送
//var_dump(curl_error($ch));//打印发送出错原因
curl_close($ch);//关闭curl