zoukankan      html  css  js  c++  java
  • php curl使用例子

    PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议,以下代码是 微信支付中,curl的使用代码
    	/**
    	 * 	作用:使用证书,以post方式提交xml到对应的接口url
    	 */
    	function postXmlSSLCurl($xml,$url,$second=30)
    	{
    		$ch = curl_init();
    		//超时时间
    		curl_setopt($ch,CURLOPT_TIMEOUT,$second);
    		//这里设置代理,如果有的话
            //curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');
            //curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
            curl_setopt($ch,CURLOPT_URL, $url);
            //证书在服务器段不进行验证
            curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
            //不检查公用名称和主机名称是否匹配
            curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
    		//设置header
    		curl_setopt($ch,CURLOPT_HEADER,FALSE);
    		//要求结果为字符串且输出到屏幕上
    		curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
    		//设置证书
    		//使用证书:cert 与 key 分别属于两个.pem文件
    		//默认格式为PEM,可以注释
    		curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
    		curl_setopt($ch,CURLOPT_SSLCERT, WxPayConf_pub::SSLCERT_PATH);
    		//默认格式为PEM,可以注释
    		curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
    		curl_setopt($ch,CURLOPT_SSLKEY, WxPayConf_pub::SSLKEY_PATH);
    		//post提交方式
    		curl_setopt($ch,CURLOPT_POST, true);
    		curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);
    		$data = curl_exec($ch);
    		//返回结果
    		if($data){
    			curl_close($ch);
    			return $data;
    		}
    		else { 
    			$error = curl_errno($ch);
    			echo "curl出错,错误码:$error"."<br>"; 
    			echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>";
    			curl_close($ch);
    			return false;
    		}
    	}
    

      

  • 相关阅读:
    java基础面试题-1
    深入探讨 Java 类加载器
    毕向东—Java基础知识总结(超级经典)
    nyoj-161-取石子 (四)
    nyist-751-破坏城市
    nyist-144-小珂的苦恼
    zoj-1047-I Think I Need a Houseboat
    zoj-1045-HangOver
    zoj-1037-Gridland
    hdoj-2268-How To Use The Car
  • 原文地址:https://www.cnblogs.com/gophper/p/4386810.html
Copyright © 2011-2022 走看看