我设法获得一个为客户端工作的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 = HttpfulRequest::post($end_uri)
->body($xml_file)
->sendsXml()
->send();
if($request)
echo 'SENT!';
}
}
和我一起工作的人也不太了解REST,但显然有一种方法可以从正在发送的请求中检索响应。有人知道吗,或者至少能给我指出正确的方向,来解决这个问题?
谢谢。
编辑:对不起,只是详细说明。将XML放入textarea字段中,然后根据XSD文件进行验证。如果这是成功的,那么它将把XML发送到REST端点。
发送调用的返回值(在代码中称为$request)实际上是一个Httpful::Response Object,并包含来自http调用的响应。
Try echo $request->body;而不是echo 'SENT!';
并且记住总是为if表达式编写块,您可以通过跳过它来创建难以发现的错误:)