最近要写一个接口,对方只接受XML数据,毕竟是别人提供的接口,所以规则还是要按照别人的来写。
之前也写过《模拟post登陆提交表单问题详解》 里面也有一种使用CURL模拟POST的方法,可以看看。
代码如下:
$url = "http://www.pooy.net/login";
<!--?xml version="1.0"?-->
$ch = curl_init();
$header[] = "Content-type: text/xml";//定义content-type为xml
curl_setopt($ch, CURLOPT_URL, $url); //定义表单提交地址
curl_setopt($ch, CURLOPT_POST, 1); //定义提交类型 1:POST ;0:GET
curl_setopt($ch, CURLOPT_HEADER, 1); //定义是否显示状态头 1:显示 ; 0:不显示
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//定义请求类型
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//定义是否直接输出返回流
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //定义提交的数据,这里是XML文件
curl_close($ch);//关闭
在PHP中CURL使用POST提交XML数据时,一定要定义content-type为xml,要不然默认是text/html!