//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;
}
$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;
}