誰かがこれと一緒に私を助けてくれることを本当に願っています...
PHP を使用して xml POST to RESTful API を実行する必要がありますが、どこから始めればよいかまったくわかりません。
xml を作成することはできますが、それを投稿するにはどうすればよいですか? cURL ライブラリを使用できません。
file_get_contents() を使用できます。allow_url_fopen
php.ini で設定する必要があります。
$context = stream_context_create(array('http'=>array(
'method' => 'POST'
'content' => $myXMLBody
)));
$returnData = file_get_contents('http://example.com/restfulapi', false, $context);
これが可能なのは、PHP が独自のラッパーでストリーム操作を抽象化するためです。ストリーム操作関数 (file_get_contents() など) にコンテキストを設定すると、PHP がそれを処理する方法を構成できます。
method
と だけでなく、より多くのパラメーターがありますcontent
。リクエスト ヘッダー、プロキシ、タイムアウトの処理などすべてを設定できます。マニュアルを参照してください。
私は数日前に同じ問題に悩まされ、最終的に誰かがこの解決策を思いついたが、少なくとも私の場合はxmlで機能しないため、$ this->_requestを使用してPOSTリクエストを取得しないでください。
$service_url1 = 'http://localhost/restTest/respond/';
$curl1 = curl_init($service_url1);
curl_setopt($curl1, CURLOPT_RETURNTRANSFER, true);
$arr=array("key"=>$xml);
curl_setopt($curl1, CURLOPT_POST, 1);
curl_setopt($curl1, CURLOPT_POSTFIELDS,$arr);
echo $curl1_response = curl_exec($curl1);
curl_close($curl1);