色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php curl webservice

李明濤1年前11瀏覽0評論
PHP Curl Webservice 快速上手 對于許多web開發人員而言,與第三方服務合作是常見的需求。一個典型的例子是與支付網關服務連接。響應這些服務API調用的方法之一是使用PHP中的CURL。本文將詳細介紹如何使用PHP CURL來發起Webservice調用,并展示一些實際的代碼示例。 使用CURL發起GET請求 讓我們從CURL的最基本形式開始。下面是一個簡單的PHP CURL Get請求的例子:
$url="http://www.example.com/test.php?id=1";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
$data=curl_exec($ch);
curl_close($ch);
echo $data;
如上所示,我們構造一個URL字符串,然后將其傳遞給curl_init()函數,該函數設置其URL。接下來,我們設置了返回數據的選項,并將它們傳遞給curl_setopt()函數。最后,通過curl_exec()函數執行請求,獲取到結果并關閉curl句柄。 使用CURL發起POST請求 現在我們來看看如何使用CURL發起POST請求。這很容易實現,只需要用curl_setopt_array()替代上面的curl_setopt()函數,傳遞一組選項數組即可。例如:
$url="http://www.example.com/test.php";
$fields=array('id'=>1,'name'=>'example');
$ch=curl_init();
curl_setopt_array($ch,array(
CURLOPT_URL=>$url,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_CONNECTTIMEOUT=>5,
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>$fields
));
$data=curl_exec($ch);
curl_close($ch);
echo $data;
如上所示,我們首先設置一個URL字符串,然后定義一個名為$fields的選項數組,它包含POST的參數。接下來,我們為curl_setopt_array()函數傳遞了選項數組,包括指定POST請求以及$fields數據參數。 使用CURL連接Webservice 現在我們已經了解了如何使用CURL發起GET和POST請求,我們可以開始探索如何使用CURL連接Webservice。我們將使用PHP SOAP客戶端擴展來演示。 在PHP中使用SOAP客戶端,我們需要提供一個WSDL地址。一個WSDL(Web Services Description Language)文件包含有關實現Webservice的關鍵詳細信息。我們將使用PHP的SOAP擴展并使用curl_setopt()來配置它。例如:
$options = array(
'soap_version'=>SOAP_1_2,
'exceptions'=>true,
'trace'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'stream_context'=>stream_context_create(array('http' =>array('header' =>'Authorization: Basic ' . base64_encode("$username:$password")))),
'curl'=>array(
CURLOPT_PORT=>80,
CURLOPT_HTTPAUTH=>CURLAUTH_BASIC,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_TIMEOUT=>30,
CURLOPT_USERPWD=>"$username:$password"
)
);
$client = new SoapClient('http://www.example.com/webservice.wsdl', $options);
在上面的代碼中,我們使用stream_context_create()函數創建了一個HTTP頭部,其中名為Authorization的信息包含用戶名和密碼。接下來,我們使用curl_setopt()函數為SOAP客戶端提供指定curl參數,例如端口,HTTP認證和用戶數據。 展示返回數據使用CURL的Progress功能 最后,讓我們來探索CURL的Progress功能,它可以在發生I/O時定期調用我們自定義的函數。下面是一個示例:
$url='http://www.example.com/largefile.zip';
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_PROGRESSFUNCTION,'progress');
curl_setopt($ch,CURLOPT_NOPROGRESS,false);
curl_setopt($ch,CURLOPT_BUFFERSIZE,64); 
curl_exec($ch);
curl_close($ch);
function progress($resource,$download_size,$downloaded,$upload_size,$uploaded)
{
if($download_size >0)
{
$percent=$downloaded/$download_size*100;
echo intval($percent)."% downloaded...\n";
}
}
我們使用curl_setopt()函數設置了進度功能,它會調用我們自定義的progress()函數,該函數會根據當前的下載情況返回進度百分比。在上面的代碼中,我們還使用了一些其他選項,例如指定緩沖區大小和禁用curl的默認進度顯示。 總結 在整個開發中,了解如何使用CURL來連接Webservice非常重要。在本文中,我們演示了如何使用CURL來發起GET和POST請求,如何使用SOAP客戶端擴展,以及如何使用CURL的進度功能。希望這篇文章對您有所幫助。