php通过curl请求api

//post请求
function postXMLCurl($url, $xml) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: text/xml; charset=utf-8',
        'Content-Length: ' . strlen($xml))
    );
    $response  = curl_exec($ch);

    if ($response) {
        curl_close($ch);
        return $response;
    } else {
        curl_close($ch);
        return false;
    }
}


            $response = postXMLCurl($url, $xml);
            if (!$response) {
                //todo
                return false;
            }<span style="white-space:pre">	</span>
            $response = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
            if (!is_object($response)) {
                //todo
                return false;
            }
            $result = (array)$response;
            //todo

//带证书验证的请求
function post_xml_curl($url, $xml, $cert='', $key='', $certpwd='') {
    $ch = curl_init();
	curl_setopt($ch, CURLOPT_HTTPHEADER, array(
	    'Content-Type: text/xml; charset=utf-8',
	    'Content-Length: ' . strlen($xml))
	);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

	if (isset( $cert) && isset($key) && isset($certpwd)) {
		curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
		curl_setopt($ch,CURLOPT_SSLCERT,$cert);
		curl_setopt($ch,CURLOPT_SSLCERTPASSWD, $certpwd);
		curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
		curl_setopt($ch,CURLOPT_SSLKEY,$key);
	}

    $response  = curl_exec($ch);
    curl_close($ch);
    return $response;
}


猜你喜欢

转载自blog.csdn.net/cscj2010/article/details/42273299