[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-tech:01870] PHPでの新API(POST) の利用法



今回はいろいろ教えていただきありがとうございました。

ネットをいろいろ検索して下記の方法で、ポストメソッドを使った新APIからのXMLデー
タがとれました。
このようにcurl関数使うと比較的高速なようですが、他に良い方法があるかもしれませ
ん。
いい方法があれば教えてください。

患者病名返却のAPIでデータ取得するプログラムです。

------------------------------------------
<?php
//ダウンロードするファイルを指定
$tmpfile="disease_inforeq.xml";
//ユーザー名とパスワードをつけてAPIのURLを指定
$url = 'http://user:password@localhost:8000/api01r/patientget?id=1233';

//POSTするデータを設定
$param = <<<XML
<data>
  <record>
    <record name="disease_inforeq">
      <string name="Patient_ID">01010</string>
      <string name="Base_Date">2011-09</string>
    </record>
  </record>
</data>
XML;

//データ書き込み用ファイルを開く
$fp = fopen($tmpfile, "w");

//セッションの初期化
$ch = curl_init();

//リクエストを送るURL
curl_setopt( $ch, CURLOPT_URL, $url );

//POSTでデータを取得
curl_setopt($ch, CURLOPT_POST, 1);

//ヘッダーの出力無し
curl_setopt( $ch, CURLOPT_HEADER, 0 );

//POSTするデータ
curl_setopt( $ch, CURLOPT_POSTFIELDS, $param );

//結果をファイルで受け取る
curl_setopt($ch, CURLOPT_FILE, $fp);

//リクエスト送信
curl_exec( $ch );

//セッションを終了
curl_close( $ch );

//ファイルを閉じる
fclose($fp);

?>
-----------------------------------------------------

返ってくるXMLファイルの解析については、SimpleXML関数使ってもまだ工夫が必要なよ
うです。
KOBAYASIさんに教えていただいたXMLReaderの方が適しているのかもしれません。
またこのMLでいろいろ質問させていただきますのでよろしくお願いします。

ゆうえん医院@岡山