如何从CURL帖子中删除所有标题

时间:2013-02-15 20:57:07

标签: php curl http-post libcurl

我正在尝试使用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)

1 个答案:

答案 0 :(得分:0)

如果这样做的话,这是不可能的。

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

如果你想做你自己的不合规帖子,那么完全自己制作你自己的缓冲区,而不是依靠libcurl的multipart formpost支持。

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