php使用标头发出post请求
使用php,我需要调用webservice,在HTTP头中传递特定数据,在实际的POST字符串中传递特定数据。但是,当我访问此页面时,该页面会尝试下载。如果我打开下载的文件,它只包含我的两个s据我所知,应该回复 我是否正确地将标题“发送”到下面定义的url,还是应该以不同的方式执行 谢谢php使用标头发出post请求,php,post,curl,header,request,Php,Post,Curl,Header,Request,使用php,我需要调用webservice,在HTTP头中传递特定数据,在实际的POST字符串中传递特定数据。但是,当我访问此页面时,该页面会尝试下载。如果我打开下载的文件,它只包含我的两个s据我所知,应该回复 我是否正确地将标题“发送”到下面定义的url,还是应该以不同的方式执行 谢谢 <?php header("Content-Type: application/x-www-form-urlencoded"); header("Content-Length: ---"
<?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);
}
?>
否。PHPheader()
调用将发出影响web服务器和浏览器之间连接的头。它不会以任何方式影响服务器使用curl创建的连接
默认情况下,当您告诉curl进行发布时,它会自动填充相应的内容类型标题,并且如果您同时进行文件上载,它会非常聪明地更改内容类型。要指定登录凭据,请使用
CURLOPT_USERPWD
(有关详细信息,请参阅)。这似乎是一个https问题,可以通过以下方式解决:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
干杯
标题(“内容类型:application/x-www-form-urlencoded”)代码>告诉浏览器您的响应具有该编码。看起来这就是为什么它拒绝显示它并提供下载的原因<与aha相比,code>header
设置的是响应头,而不是请求头,这与Marc B所说的也有道理。我已经取得了一些进展,现在从另一方得到了回应:)在Marc B让我在USERPWD上走上了正确的方向之后。。。我能够访问url并得到回复。。。这是一个错误。你的这篇文章,修正了新的错误!!!谢谢@亚当:在我写了回复后,我发现你的主要问题是什么,但马克更快了。我很高兴它毕竟奏效了。