【问题标题】:How do I remove all headers from a CURL Post如何从 CURL 帖子中删除所有标题
【发布时间】:2013-02-15 20:57:07
【问题描述】:

我正在尝试使用不带任何标题的 cURL 将 xml 发布到服务器,但我似乎无法摆脱以下标题:

Content-Disposition: form-data; name="data"; filename="tempData.xml".

有谁知道如何删除这些标头并只发送文件?

代码如下:

$URL = www.myurl.com/process/php;

        //get post data
        $post = array("data"=>"@tempData.xml"); 

        //add headers
        /*$Headers = array
            ( "POST HTTP/1.0"
            , "Accept: text/xml"
            , "Content-type: text/xml"
            );*/

        //$Headers = array("");

        //create curl instance and set options
        $CH = curl_init($URL);
        curl_setopt( $CH, CURLOPT_TIMEOUT, 60 ); //timeout after 60 seconds
        curl_setopt( $CH, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt( $CH, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt( $CH, CURLOPT_HTTPHEADER, 0);
        curl_setopt( $CH, CURLOPT_HEADER, 0);
        curl_setopt( $CH, CURLOPT_POST, true );
        curl_setopt( $CH, CURLOPT_POSTFIELDS, $post ); // add post fields

        //echo curl_error($CH);
        $output = curl_exec( $CH );
        $info = curl_getinfo( $CH );
        //print_r($info);

        if($info['http_code'] != 200){
            //header('HTTP/1.0 500 Could Not Send XML');
            echo 'error ' . $info["http_code"];
            curl_close($CH);
            exit(1);
        }

        curl_close($CH)

;

【问题讨论】:

    标签: php curl http-post libcurl


    【解决方案1】:

    这样真的不行。

    当您选择使用 libcurl 进行多部分表单发布时,它实际上会根据规范执行表单发布。它最初是在 RFC1867 中指定的,然后它已经指定 Content-Disposition: 应该存在于每个表单部分。

    如果您想自己做不合规的帖子,请完全制作自己的缓冲区,而不是依赖 libcurl 的多部分表单支持。

    最后让我说您指定自定义标头的注释掉的代码是错误的,因为它在标头中包含一个请求行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多