使用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);
}
?>
答案 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);
干杯!