如何解决错误的请求:无法解析XML 400错误Curl PHP
我正在使用PHP POST Curl请求传递XLM数据,但响应中却出错:
错误请求:无法解析XML。检查您要发送到的XML 确保可以对其进行解析。
$url = 'https://provapi.advancedmd.com/processrequest/API-100/DOKTORCONNECT/xmlrpc/processrequest.aspx';
$xmldata = '<ppmdmsg action="addpatient" class="demographics" msgtime="3/20/2018 2:52:07 PM"><patientlist><patient respparty="SELF" name="smith,BOB" sex="M" genderidentity="" genderidentityother="" orientation="" orientationother="" hipaarelationship="18" relationship="1" dob="03/11/1952"ssn="444-44-4444" additionalmrn="" chart="AUTO" profile="prof18" finclass="fclass16" language="44" inactivestatus="" title="MR" maritalstatus="1" employer=""><address zip="15136" city="MC KEES ROCKS" state="PA" address1="" address2="123 Main Street"/><contactinfo homephone="" officephone="" officeext="" otherphone="" othertype="" preferredcommunicationfid="" confidentialcommunicationfid="" communicationnote="" email="" emailverificationstatus="0"/></patient></patientlist><resppartylist><respparty name="SELF" accttype="4"/></resppartylist></ppmdmsg>';
$headers = array();
$headers[] = 'Content-Type: text/xml';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$xmldata);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
//Send the request
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,300);
$response = curl_exec($ch);
curl_close($ch);
$array_data = json_decode(json_encode(simplexml_load_string($response)),true);
print_r('<pre>');
print_r($array_data);
print_r('</pre>');
响应如下:
Array
(
[Results] => Array
(
)
[Error] => Array
(
[Fault] => Array
(
[faultcode] => Client
[faultstring] => Client Error
[detail] => Array
(
[code] => 400
[description] => Bad Request: XML cannot be parsed
[extrainfo] => Bad Request: XML cannot be parsed. Check the XML you are sending to make sure it can be parsed.
)
)
)
)
解决方法
您正在调用的API似乎有问题!尝试像这样分配变量:
$xmldata = <<<XML
<ppmdmsg action="addpatient" class="demographics" msgtime="3/20/2018 2:52:07 PM">
<patientlist>
<patient respparty="SELF" name="smith,BOB" sex="M" genderidentity="" genderidentityother="" orientation=""
orientationother="" hipaarelationship="18" relationship="1" dob="03/11/1952" ssn="444-44-4444"
additionalmrn="" chart="AUTO" profile="prof18" finclass="fclass16" language="44" inactivestatus=""
title="MR" maritalstatus="1" employer="">
<address zip="15136" city="MC KEES ROCKS" state="PA" address1="" address2="123 Main Street"/>
<contactinfo homephone="" officephone="" officeext="" otherphone="" othertype=""
preferredcommunicationfid="" confidentialcommunicationfid="" communicationnote="" email=""
emailverificationstatus="0"/>
</patient>
</patientlist>
<resppartylist>
<respparty name="SELF" accttype="4"/>
</resppartylist>
</ppmdmsg>
XML;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。