次のcURLを使用してRest Webサービスを呼び出そうとしています:
- 証明書を生成する
- この証明書をダウンロード
これらの機能はすべて単独で動作していますが、それらを 1 つのサービスにまとめると、ダウンロード ダイアログが開かず、コンテンツ タイプとして常に text/html を取得しています。Firebug 経由で確認しました。
これはダウンロードのコードです (php.ent から):
if (file_exists($filename)) {
header("Content-Length: " . filesize($filename));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $certName);
readfile($filename, false);
exit();
}
そして、これが私が自分のサービスを呼び出す方法です:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
$dat=array(
// many args
);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $dat);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error\n";
} else {
echo "Data received: $data\n";
}
curl_close($ch);
どうしたの?