您的位置:首页 > 编程语言 > PHP开发

php 接收及发送POST/GET请求 接收Xml格式数据POST请求及发送

2018-06-01 11:44 621 查看

补充三点说明:

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 = "<xml><username>James</username><password>1234</password></xml>";
$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 阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: