Php 对API的XML查询返回';文件过早结束';
我试图调用一个外部站点(API),它将返回一个XML响应。我尝试了几种方法,但最终得到了相同的响应:Php 对API的XML查询返回';文件过早结束';,php,xml,parsing,Php,Xml,Parsing,我试图调用一个外部站点(API),它将返回一个XML响应。我尝试了几种方法,但最终得到了相同的响应:文件过早结束。不幸的是,我无法从其他网站获得任何积极的反馈。下面是我尝试过的php命令及其结果。在我看来,在另一个网站上有一个问题。我可以复制URL并粘贴到浏览器中,效果很好 $url = "https://cli-cert.emdeon.com/servlet/XMLServlet?request=<?xml version='1.0'?>"; $url .= "<REQUES
文件过早结束
。不幸的是,我无法从其他网站获得任何积极的反馈。下面是我尝试过的php命令及其结果。在我看来,在另一个网站上有一个问题。我可以复制URL并粘贴到浏览器中,效果很好
$url = "https://cli-cert.emdeon.com/servlet/XMLServlet?request=<?xml version='1.0'?>";
$url .= "<REQUEST userid='p_panda1' password='practice00' facility='3003154010'>";
$url .= "<OBJECT name='clinicalreport' op='search_filedelivery'>";
$url .= "<receivingorganization>3003154010</receivingorganization>";
$url .= "<creation_datetime_from>09/01/2014</creation_datetime_from>";
$url .= "<creation_datetime_to>10/10/2014</creation_datetime_to>";
$url .= "<is_downloaded>n</is_downloaded></OBJECT></REQUEST>";
$myXML = simplexml_load_file($url);
echo "<pre>";
print_r($myXML);
$postdata = file_get_contents($url);
echo "<pre>";
print_r($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo "<pre>";
echo $response,"<br>";
您正在创建的URL无效 您正在创建一个URL,如:
https://cli-cert.emdeon.com/servlet/XMLServlet?request=...
这意味着你有两个问号。例如,据我所知,<不是有效的url字符
因此,您必须对其进行url编码,如:
$request='…等;
$url=”https://cli-cert.emdeon.com/servlet/XMLServlet?request=". urlencode($请求);
您需要urlencode
参数。查看以了解更多信息。将其更改为此后,所有3个都会返回一个响应
$url=”https://cli-cert.emdeon.com/servlet/XMLServlet?request=";
$xml=”“;
$xml.=“”;
$xml.=“”;
$xml.=“3003154010”;
$xml.=“09/01/2014”;
$xml.=“2014年10月10日”;
$xml.=“n”;
$url=$url。urlencode($xml);
这是有效的。需要将url_encode更改为urlencode。
SimpleXMLElement Object
(
[0] => Premature end of file.
)
Premature end of file.
Premature end of file.
https://cli-cert.emdeon.com/servlet/XMLServlet?request=<?xml version='1.0'?>...
$request = '<?xml version='1.0'?>...etc...';
$url = "https://cli-cert.emdeon.com/servlet/XMLServlet?request=". urlencode($request);
$url = "https://cli-cert.emdeon.com/servlet/XMLServlet?request=";
$xml = "<?xml version='1.0'?>";
$xml .= "<REQUEST userid='p_panda1' password='practice00' facility='3003154010'>";
$xml .= "<OBJECT name='clinicalreport' op='search_filedelivery'>";
$xml .= "<receivingorganization>3003154010</receivingorganization>";
$xml .= "<creation_datetime_from>09/01/2014</creation_datetime_from>";
$xml .= "<creation_datetime_to>10/10/2014</creation_datetime_to>";
$xml .= "<is_downloaded>n</is_downloaded></OBJECT></REQUEST>";
$url = $url . urlencode($xml);