使用REST在PHP中使用Httpful发送XML

使用REST在PHP中使用Httpful发送XML,php,rest,httpful,Php,Rest,Httpful,我设法让一个SOAP客户机为一个客户机工作,但我现在正尝试将REST用于一个稍微不同的项目。我正在使用Httpful。从我所读到的内容来看,这是我需要做的事情,以完成我被要求做的事情 这是到目前为止我的代码 /* MAIN RESTFUL */ $xml_file = './Project.xml'; $xsd_file = './Project.xsd'; $end_uri = 'https://****.com/Service.svc/CreateProject'; /* TEMP TE

我设法让一个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!';
    }
}
/*主RESTFUL*/
$xml_file='./Project.xml';
$xsd_file='./Project.xsd';
$end_uri='https://**.com/Service.svc/CreateProject';
/*临时文本区域字段*/
如果(!isset($_POST['submit']))
$\u xml=file\u get\u contents($xml\u file);
其他的
$\u xml=$\u POST['xml\u input'];
回显“”$_xml。”




; /*结束温度文本区域字段*/ 如果(isset($_POST['submit'])) $xml\u file=$\u POST['xml\u input']; 如果(isset($_POST['submit'])) { $xsd_validate=新的DOMDocument(); $xsd_validate->loadXML($xml_文件); if($xsd_-validate->schemaValidate($xsd_-file)) $sendXML=true; if($sendXML==true) { 需要('./httpful master/bootstrap.php'); $request=\Httpful\request::post($end\u uri) ->正文($xml\u文件) ->sendsXml() ->send(); 如果($请求) 回音‘已发送!’; } }
和我一起工作的人也不太了解REST,但显然有一种方法可以从发送的请求中检索响应。有人知道,或者至少能给我指出正确的方向来解决这个问题吗

谢谢


编辑:对不起,我只是想详细说明一下。XML被放入textarea字段,然后根据XSD文件进行验证。如果成功,它将把XML发布到REST端点。

发送调用的返回值(代码中名为$request)实际上是一个Httpful::Response对象,包含来自http调用的响应

尝试echo$request->body;而不是echo'SENT!'


请记住始终为if表达式编写块,您可以通过跳过它来创建难以找到的bug:)

很抱歉回复太晚,但这正是它的本意。谢谢