導航:首頁 > 編程語言 > 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相關的資料

熱點內容
怎樣不用海綿做解壓玩具 瀏覽:77
為什麼遠程伺服器復制不了文件 瀏覽:713
打開app閃退怎麼回事 瀏覽:750
bcrpt加密原理 瀏覽:399
女程序員寫的小說 瀏覽:774
華為路由器ip設置命令 瀏覽:552
如何打開軟體伺服器 瀏覽:756
單片機介面技術及應用 瀏覽:751
linux下執行腳本文件 瀏覽:127
撥號加密保護 瀏覽:435
b站彈幕加密 瀏覽:601
交友盲盒源碼破解 瀏覽:248
單片機100位百位符號 瀏覽:686
用友通加密狗壞了 瀏覽:550
如何在伺服器上配置外網網址 瀏覽:844
阿里雲伺服器的硬體在哪裡 瀏覽:54
python自動注冊谷歌 瀏覽:330
phpini驗證碼 瀏覽:826
解壓後的文件怎麼驅動 瀏覽:328
老闆要程序員加班 瀏覽:416