0

次のcURLを使用してRest Webサービスを呼び出そうとしています:

  1. 証明書を生成する
  2. この証明書をダウンロード

これらの機能はすべて単独で動作していますが、それらを 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);

どうしたの?

4

1 に答える 1