0

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 エンドポイントにポストされます。

4

1 に答える 1

2

send 呼び出しからの戻り値 (コードでは $request という名前) は、実際には Httpful::Response オブジェクトであり、http 呼び出しからの応答が含まれています。

echo $request->body; を試してください。echo 'SENT!' の代わりに;

そして、常に if 式のブロックを書くことを忘れないでください。それをスキップすると、見つけにくいバグを作成できます :)

于 2013-07-04T06:43:36.090 に答える