Php &引用;“内容类型”;标题中的内容未更改

Php &引用;“内容类型”;标题中的内容未更改,php,http-headers,download,rest,Php,Http Headers,Download,Rest,我正在尝试使用cURL调用Rest web服务,它将执行以下操作: 生成证书 下载此证书 这些函数中的每一个都是单独工作的,但是当将它们收集到一个服务中时,下载对话框不会打开,而且我总是将text/html作为内容类型,我是通过Firebug看到的 这是下载的代码(从php.ent): 我是这样称呼我的服务的: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); $d

我正在尝试使用cURL调用Rest web服务,它将执行以下操作:

  • 生成证书
  • 下载此证书
  • 这些函数中的每一个都是单独工作的,但是当将它们收集到一个服务中时,下载对话框不会打开,而且我总是将text/html作为内容类型,我是通过Firebug看到的

    这是下载的代码(从php.ent):

    我是这样称呼我的服务的:

    $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);
    
    你们怎么了

  • 您的浏览器发出HTTP请求
  • 您的服务器运行一个运行cURL的PHP脚本
  • cURL从另一台服务器获取数据,并忽略contentdispositionheader,因为它是cURL而不是浏览器
  • 运行cURL的PHP脚本将收到的
    数据:$Data
    作为HTML文档的主体输出
  • 浏览器接收该HTTP文档
  • 如果希望cURL-using程序充当代理,则需要代理HTTP头,而不是向输出中添加额外数据

    $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);