ここに私のコードサンプルがあります:
function xmlPostStore($post_xml, $url, $port) {
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_PORT, $port); //Set the port number
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml); // add POST fields
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
私が送っているもの:
$XML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<SendConfig>
<Request>
<key>passphrase</key>
</Request>
</SendConfig>";
$reply = xmlPostStore($XML, "http://www.urlhere.com/test.php", "80");
test.php は単純な XML の戻り値です。
echo "<?xml version='1.0' encoding='utf-8'?>
<response>
<config>
<test>it works</test>
</config>
</response>";
これを 1 つのサーバーでテストすると、100% の確率で動作します。返信があり、問題はありません。
メインサーバーでテストすると、何も返されず、ほとんどの場合、約 98% が空白です。コードを変更しなければ、ランダムに動作し、ランダムに停止します。私は困惑しています。