我正在使用 PHP 进行代理。在我的 php 代码中,我发送了正确的必需标头,并希望获得响应正文和标头。但是,我得到了我想要的正确响应正文,但没有正确获取标题(应该得到状态 200 但得到 401)。当我使用 Firefox 进行跟踪时,我发现 SAP URL 本身通过使用我发送的数据在内部发出 2 个请求。因此,对于我的第一个请求,它没有经过身份验证,因此 SAP url itslef 再次发送相同的请求,第二次它提供了带有标题的正确响应正文。然而,当我得到它时,我使用 php 代码从第二个响应中获取响应体,从第一个响应中获取标头。这是代码。
$opts = array(
'http'=>array(
'method'=>"POST",
'content' => $xml_request,
'header'=>array("Host:" . $sap_url,
"Content-Type: text/xml; charset=UTF-8",
$authstring,$xml_request)
)
);
$context = stream_context_create($opts);
$result = file_get_contents($sap_url, false, $context);
$http_res_array = get_headers($sap_url);