php curl webservice
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的进度功能。希望这篇文章对您有所帮助。
上一篇:php curl xpath
下一篇:php curl 下载
php curl webservice
南阳代办公司工商营业执照
南阳代办营业执照工商执照公司
南阳宛城区代办申请工商营业执照
南阳卧龙区代办工商营业执照
南阳个体户营业执照代办
南阳公司工商营业执照代办
南阳代办公司工商营业执照细节流
南阳代办营业执照需要的资料
唐山增值电信业务经营许可证申请
廊坊第二类增值电信业,ICP许可证