0

送信者スクリプトと受信者スクリプトがあります。送信者はxmlファイルを送信し、受信者はそれを取得してデータベースに保存します。

送信者は次のようになります:

$xml = file_get_contents("data.xml");

  // We send XML via CURL using POST with a http header of text/xml.
  $ch = curl_init();
  // set URL and other appropriate options
  curl_setopt($ch, CURLOPT_URL, "http://localhost/iPM/receiver.php");
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($ch, CURLOPT_REFERER, 'http://localhost/iPM/receiver.php');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $ch_result = curl_exec($ch);
  echo "Result = ".$ch_result;
  curl_close($ch);

と受信者:

$xml = file_get_contents('php://input');

parsing the xml - storing to database
etc etc etc etc etc etc etc etc etc

送信者スクリプトを実行するときに、受信者からすべてが正常であり、xmlファイルが受信されたという応答を返す必要があります。私のコードでは、このコード行でそれがわかると信じていまし echo "Result = ".$ch_result; たが、印刷されているのは。だけですResult =

だから私は何が間違っているのですか?返信を返すには、送信者/受信者に何を追加する必要がありますか?

4

1 に答える 1

0

次の行を置き換えます。

$ch_result = curl_exec($ch);
echo "Result = " . $ch_result;

次の行を使用して、それが機能するかどうかを確認します。

$ch_result = curl_exec($ch);
$ch_header = curl_getinfo($ch);
echo "Status : " . $ch_header['http_code'] . "<br />";
echo "Result = " . $ch_result;

リクエストと変数に関するcurl_getinfo基本情報をhttp_code返すと、レスポンスコード200,404などが返されます。その後、コードを確認し、要件に従って解析できます。

それが役に立てば幸い。

于 2013-01-18T10:17:06.037 に答える