PHP4:通过 cURL 通过 HTTPS/POST 发送 XML?
我编写了一个类/函数来通过 PHP4/cURL 通过 https 发送 xml,只是想知道这是否是正确的方法,或者是否有更好的方法。
请注意,目前 PHP5 不是一个选项。
/**
* Send XML via http(s) post
*
* curl --header "Content-Type: text/xml" --data "<?xml version="1.0"?>...." http://www.foo.com/
*
*/
function sendXmlOverPost($url, $xml) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// For xml, change the content-type.
curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ask for results to be returned
if(CurlHelper::checkHttpsURL($url)) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
// Send to remote and return data to caller.
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
干杯!
I wrote a class/function to send xml over https via PHP4/cURL, just wondering if this is the correct approach, or if there's a better one.
Note that PHP5 is not an option at present.
/**
* Send XML via http(s) post
*
* curl --header "Content-Type: text/xml" --data "<?xml version="1.0"?>...." http://www.foo.com/
*
*/
function sendXmlOverPost($url, $xml) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// For xml, change the content-type.
curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ask for results to be returned
if(CurlHelper::checkHttpsURL($url)) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
// Send to remote and return data to caller.
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
cheers!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
很好的解决方案! 在这里也找到了类似的:
他们还展示了如何在服务器上接收这种XML/JSON
Great solution! Found a similar one here also:
Also they have showed how to receive this kind of XML/JSON on server
如果您使用的协议是 XML-RPC(看起来像您所说的)并且您至少使用 PHP 4.2,请查看 http://phpxmlrpc.sourceforge.net/ 用于库和资源。
If the protocol you are using is XML-RPC (looks like it based on what you said) and you are using at least PHP 4.2, have a look at http://phpxmlrpc.sourceforge.net/ for libraries and resources.
$ch =curl_init($serviceUrl);
$ch = curl_init($serviceUrl);
使用大多数 PHP 安装提供的 SoapClient
类例子是:
Use the SoapClient class provided with most PHP installations
An example is: