php使用标题发布请求

时间:2011-09-27 20:56:21

标签: php post curl header request

使用php,我需要调用webservice,传入HTTP头中的特定数据,以及实际POST字符串中的特定数据。但是,当我访问此页面时,页面会尝试下载。如果我打开下载的文件,它只包含我的两个!根据我的理解,应该回复一个回复。

我是否正确地将标题“发送”到下面定义的网址,或者我应该以不同方式执行此操作?

谢谢!

<?php 
    header("Content-Type: application/x-www-form-urlencoded");
    header("Content-Length: ---");
    header("Authorization: Basic -------");

try{

    $xml = "------";

    $url = 'https://---.com/---/---?site_id=---&service_name=---';

    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_POST, 1);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);

    curl_close($ch);

    echo "!" . $response . "!";

} catch (Exception $e) {
    print_r($e);
}

?>

2 个答案:

答案 0 :(得分:1)

没有。 PHP header()调用将发出影响Web服务器与您的浏览器之间连接的标头。它不会以任何方式影响服务器使用curl创建的连接。

默认情况下,当您告诉它执行POST时,curl会自动填写相应的内容类型标题,并且如果您正在进行文件上传,它也足够聪明地更改内容类型。要指定登录凭据,请使用CURLOPT_USERPWD(有关详细信息,请参阅http://php.net/curl_setopt。)

答案 1 :(得分:0)

看起来这是一个https问题,可以通过以下方式解决:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

干杯!