【问题标题】:Cannot recieve header information via PHP but with Postman [duplicate]无法通过 PHP 但使用 Postman 接收标头信息 [重复]
【发布时间】:2019-08-23 03:13:53
【问题描述】:

我正在尝试在 POST 请求的标头中获取 Token。使用 Postman 它可以工作,但是当我在 PHP 中运行它时,我得到了正确的内容,但无法提取标题信息。

我复制了 Postman 中生成的 PHP 代码,但无法提取标题信息。我只得到内容。

我使用的代码:

<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://xxxx.yyyy.xy/xxxxxx/xxxxxxxxxxx",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Content-Type: application/x-www-form-urlencoded",
    "Postman-Token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>

标头应包含“令牌”。 我无法收到任何标题信息。

【问题讨论】:

  • 我找到了解决问题的办法:

标签: php curl php-curl


【解决方案1】:

我找到了解决问题的方法:

<?php

$curl = curl_init();

$Username = "XXXXXXXXX";
$Password = "YYYYYYYYYY";
$Credentials = base64_encode($Username.':'.$Password);
$Credentials_Auth = "Authorization: Basic ".$Credentials;
// echo "<br>Cred-auth: ".$Credentials_Auth."<br>";

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://XXXXXXXXX/YYYYYYYYYYY/ZZZZZZZZZZZ",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  **CURLOPT_HEADER => 1,**
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    $Credentials_Auth,
    "Content-Type: application/x-www-form-urlencoded",
    "cache-control: no-cache"
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);

if ($err) { echo "cURL Error #:" . $err;}
else { echo $response; }

**$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);
$body = substr($response, $header_size);**

curl_close($curl);

**header("Content-Type:text/plain; charset=UTF-8");
echo $headers;
echo $body;**
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2023-03-14
    • 2011-08-03
    • 2011-05-09
    • 1970-01-01
    相关资源
    最近更新 更多