导航:首页 > 编程语言 > phpcurl返回xml

phpcurl返回xml

发布时间:2023-08-22 20:25:54

1. 我有移动提供的短信接口,请问怎么用php调用这些接口发送短信呢

移动的接口是什么风格的?是soap的还是自定义的?

调用自定义接口通常有以下步骤:

1、阅读接口文档

2、数据接口一般会提供一些参数。如果是GET接口,请将参数拼接在地址的后面(推荐使用

http_build_query)。如果是POST接口,看我的示例代码。

3、请求数据

4、解析返回的内容,判断调用是否成功。一般返回的内容有xml和json格式。


给你一个CURL调用POST接口的例子:

<?php
$ch=curl_init('省略接口地址,防止屏蔽');
//以下选项设为true,否则接口返回的内容会直接打印在页面上
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//连接超时,一定要设置
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
//连接成功后,请求超时,一定要设置
curl_setopt($ch,CURLOPT_TIMEOUT,5);
//使用POST请求
curl_setopt($ch,CURLOPT_POST,1);
//将参数POST过去,$post_data是你的参数组成的关联数组
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
//提交请求,得到反馈
$response=curl_exec($ch);
//解析反馈的内容,略


如果是SOAP风格的,请查阅PHP文档SoapClient类的用法。因为Soap规范不统一,使用其他语言实现的Soap可能和PHP不兼容。


以前我使用过移动梦网的接口(不是移动的接口),它提供两种风格的API。它的Soap就和PHP不兼容。所以我选择了自定义风格的API。

2. 如何用Curl 来post xml 数据

经过一番查找,终于找到了curl使用post的命令

echo '<?xml version …>'|curl -X POST -H 'Content-type:text/xml' -d @- http://10.206.30.32:8081/loginregistration/register

其中圆扰桥<?xml version …>就是李乎要post的xml 文件,8081是私有端口。

例子:

Request:

echo '<?xml version="1.0" encoding="utf-8" ?><橘猛user>......</user>'|curl -X POST -H 'Content-type:text/xml' -d @- http://10.206.30.32:8081/loginregistration/register

Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user>......</user>

做相关判断,就可以知道业务是否正常

3. php如何通过get方法发送http请求,并且得到返回的参数

这是一个跨域访问问题,以前这种问题是比较复杂的。不过随着XML josn等等数据结构的应用
现在还是很好解决的 而且你的要求也不高 只是一个返回值的话 都用不到数据结构了 直接页面输出就好了
我写了两个简单的文件给你 里面的域名和文件名参数 你都可以自己调整 我测试是没问题的

//test.php
<?php
$ch = curl_init();

$str ='http://127.0.0.1/form.php?id=10';
curl_setopt($ch, CURLOPT_URL, $str);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec($ch);
var_mp( $output );
?>

//页面输出结果 string(2) "10"

//form.php 文件内容如下
<?php
$id = $_GET['id'];
echo $id;
?>

4. 在 php curl返回

给你个我写的curl方法。

/**
*curl模拟提交
*@param string $url 网址
*@param array/string $opt 提交参数
*@param string &$header 取回的头信息
*@param string $redirect 是否重定向
*@param boolean $ssl 验证https证书
*@return [type] 返回信息
*/
functioncurl($url,$opt='GET',&$header=null,$redirect=true,$ssl=false){

//初始化
$ch=curl_init($url);

//配置设置
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,$ssl);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,$ssl);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,$redirect);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); #返回结果
curl_setopt($ch,CURLOPT_HEADER,true); #显示协议头

if(is_array($opt)){

//转小写
$opt=array_change_key_case($opt,CASE_LOWER);

//POST
if(isset($opt['type'])&&strtoupper($opt['type'])=='POST'){
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,(isset($opt['data'])?$opt['data']:''));
}

//User-Agent
if(array_key_exists('ua',$opt))
curl_setopt($ch,CURLOPT_USERAGENT,$opt['ua']);

//Header
if(array_key_exists('header',$opt)){
curl_setopt($ch,CURLOPT_HTTPHEADER,(array)$opt['header']);
}

//Cookie
if(array_key_exists('cookie',$opt))
curl_setopt($ch,CURLOPT_COOKIE,$opt['cookie']);

//Referer
if(array_key_exists('referer',$opt))
curl_setopt($ch,CURLOPT_REFERER,$opt['referer']);

}else{

//仅POST
if(strtoupper((string)$opt)=='POST')
curl_setopt($ch,CURLOPT_POST,true);

}

$result=curl_exec($ch);

if(curl_errno($ch)){
$result=curl_error($ch);
}else{

//获取头长度
$length=curl_getinfo($ch,CURLINFO_HEADER_SIZE);

//取出头信息
$header=substr($result,0,$length);

//去掉头信息
$result=substr($result,$length);

}

//释放
curl_close($ch);

return$result;

}

5. php curl的几种用法

总结一下项目中用到curl的几种方式 1. php curl的默认调用方法,get方式访问url $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //设置http头 curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //设置为客户端支持gzip压缩 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //设置连接等待时间 curl_setopt($ch, CURLOPT_URL, $url ); curl_exec( $ch ); if ($error = curl_error($ch) ) {//出错处理return -1;}fclose($fp); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //获取http返回值 if( $curl_code == 200 ) { //正常访问url}//异常 2. 设置http header支持curl访问lighttpd服务器Java代码$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 设置curl,只获取http header,不获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只获取body:Java代码curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 访问虚拟主机,需设置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式访问urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要服务器支持这些方法。6. 保存下载内容为文件

阅读全文

与phpcurl返回xml相关的资料

热点内容
女程序员写的小说 浏览:774
华为路由器ip设置命令 浏览:552
如何打开软件服务器 浏览:756
单片机接口技术及应用 浏览:751
linux下执行脚本文件 浏览:127
拨号加密保护 浏览:435
b站弹幕加密 浏览:601
交友盲盒源码破解 浏览:248
单片机100位百位符号 浏览:686
用友通加密狗坏了 浏览:550
如何在服务器上配置外网网址 浏览:843
阿里云服务器的硬件在哪里 浏览:54
python自动注册谷歌 浏览:329
phpini验证码 浏览:826
解压后的文件怎么驱动 浏览:328
老板要程序员加班 浏览:416
泰尔pdf 浏览:313
视频转码压缩哪款软件好 浏览:649
盯盯拍记录仪下载什么app 浏览:438
新东方新概念英语pdf 浏览:698