Использование 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, вы можете создавать сложные для поиска ошибки, пропуская его:)

Другие вопросы по тегам