//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;
}
本文详细介绍了如何使用PHP实现POST请求,并加载XML数据。此外,还展示了如何进行HTTPS证书验证,确保数据传输的安全性。
2431

被折叠的 条评论
为什么被折叠?



