php - 错误请求:无法解析 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;
推荐阅读
- javascript - 在 safari js 中等待似乎没有等待
- tensorflow - 将张量映射到张量流中的操作
- jquery - 单击时更改切换图标
- microsoft-graph-api - 如何通过 Microsoft Outlook Calendar Graph API 查找重复异常
- interpretation - 计算机如何解释数据
- firebase - 在firebase firestore中使用外部orderby而不使用使用的查询不等式
- azure-cognitive-search - 选择查询中 geo.distance 函数的返回值
- r - R:用概率密度函数卷积响应
- c# - WebRequest 在 WinHttpGetProxyForUrl() 中获取 TaskCanceledException
- mysql - Mysql2::Error: 操作数应包含 1 列: