0

サーバーページで何をする必要があり、このxmlファイルを受け取る方法は?私は立ち往生しています。xmlは問題ありません。simplexml_load_stringでチェックされます。

 $var='caca';
 $login_xml ='<xml>'.
         '<action>log_in</action>'.
     '<parameters>'.
         '<username>'.$var.'</username>'.
     '<pass>abdef01</pass>'.
     '</parameters>'.
     '</xml>';

 $URL = "http://myurl.com/login.php/";


 $ch = curl_init($URL);
 curl_setopt($ch, CURLOPT_MUTE, 1);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
 curl_setopt($ch, CURLOPT_POSTFIELDS, "$login_xml");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($ch);
 curl_close($ch);

お時間をいただきありがとうございます。

4

2 に答える 2

2

データはURLエンコードされたフォームデータとしてではなくtext/xmlとして送信されるため、$_POSTを使用することはできません。php://inputストリームから生のリクエストを読み取る必要があります

$xml = file_get_contents('php://input');
于 2012-05-21T21:37:37.673 に答える
0

CURLOPT_POST_FIELDSにエラーがあります:このオプションは配列である必要があります:

...
$data = array('xml' => $login_xml);
...

その後:

...
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
...

これにより、値'xml'が投稿フィールドとして送信されます。

お役に立てれば。

于 2012-05-21T20:43:28.413 に答える