Использование REST для отправки XML в PHP с использованием Httpful
Мне удалось заставить клиента SOAP работать на клиента, но сейчас я пытаюсь использовать REST для немного другого проекта. Я использую Httpful. Из того, что я прочитал, это то, что мне нужно для того, чтобы сделать то, о чем меня просили.
Это мой код до сих пор.
/* MAIN RESTFUL */
$xml_file = './Project.xml';
$xsd_file = './Project.xsd';
$end_uri = 'https://****.com/Service.svc/CreateProject';
/* TEMP TEXTAREA FIELD */
if(!isset($_POST['submit']))
$_xml = file_get_contents($xml_file);
else
$_xml = $_POST['xml_input'];
echo '<form method="post" action=""><textarea name="xml_input" rows="10" cols="100">' . $_xml . '</textarea><br /><input type="submit" name="submit" value="Send"></form><br /><a href="./">Reset Form</a><br /><br />';
/* END TEMP TEXTAREA FIELD */
if(isset($_POST['submit']))
$xml_file = $_POST['xml_input'];
if(isset($_POST['submit']))
{
$xsd_validate = new DOMDocument();
$xsd_validate->loadXML($xml_file);
if($xsd_validate->schemaValidate($xsd_file))
$sendXML = true;
if($sendXML == true)
{
require('./httpful-master/bootstrap.php');
$request = \Httpful\Request::post($end_uri)
->body($xml_file)
->sendsXml()
->send();
if($request)
echo 'SENT!';
}
}
Парень, с которым я работаю, тоже мало что знает о REST, но, очевидно, есть способ получить ответ на отправленный запрос. Кто-нибудь знает или, по крайней мере, может указать мне правильное направление, чтобы решить эту проблему?
Благодарю.
РЕДАКТИРОВАТЬ: Извините, просто для уточнения. XML помещается в поле textarea, а затем проверяется по XSD-файлу. Если это успешно, он отправит этот XML в конечную точку REST.
1 ответ
Возвращаемое значение из вызова send (в вашем коде с именем $request) на самом деле является объектом Httpful::Response и содержит ответ от вашего http-вызова.
Попробуйте echo $request->body; вместо эха "ОТПРАВЛЕНО!";
И не забывайте всегда писать блок для выражений if, вы можете создавать сложные для поиска ошибки, пропуская его:)