2016-04-08 8 views
0

私はこの流れを再現する必要があります。付属のXMLを使用したカールとcurl/PHPでXMLを送信および取得する方法は?

ページrequest.php呼び出しページresponse.php - >ページ応答が取り付けられており、別のXMLを印刷XMLを読み取る - >ページ要求は応答を読み、印刷します。

これは私がページrequest.phpのために使用していたコードです:ページresponse.phpで

$xmlRequest = '<Main > 
    <First> 
     <Second> 
     Detail 1 
     </Second> 
     <Second> 
     Detail 2 
     </Second> 
    </First> 
</Main>'; 


$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,"http://localhost:8888/response.php"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); 

$server_output = curl_exec ($ch); 

curl_close ($ch); 


echo "Result :".$server_output; 

、私はちょうど

header('Content-type: application/xml'); 
var_dump($_REQUEST); 

request.phpから送信されたXMLを取得することはできません。 Var_dumpは空の値を返し、print_r($_REQUEST)も同じです。

送信されたXMLをどのように読み取ることができますか?

+0

私は 'CURLOPT_POSTFIELDS'は配列またはurlencodedパラメータでなければなりません。 –

答えて

1

FROM:phpdocsCURLOPT_POSTFIELDSは、配列/ urlencoded文字列である必要があります。配列Content-Typeを使用する場合は、multipart/form-dataにする必要があります。ここに例があります。私はこれが役立つことを願っています

$postFields = array ('xml' => '<Main><First><Second>Detail 1</Second><Second>Detail 2</Second></First></Main>',); 
... 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); 
... 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); 
... 
関連する問題