nginx - 从 Laravel 中的 curl 请求中获取标头
问题描述
我有一个场景,我必须发出 curl 请求并且需要从响应标头接收令牌。这是我尝试过的:
$post_request = [
.....
];
$payload = json_encode($post_request);
$headers = [];
$curl_connection = curl_init($endpoint);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $payload);
curl_setopt($curl_connection, CURLOPT_HTTPHEADER, array('Content-Type:application/json;charset=utf8'));
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_HEADER, true);
// this function is called by curl for each header received
curl_setopt($curl_connection, CURLOPT_HEADERFUNCTION,
function ($curl, $header) use (&$headers) {
$len = strlen($header);
$header = explode(':', $header, 2);
if (count($header) < 2) // ignore invalid headers
{
return $len;
}
$headers[strtolower(trim($header[0]))][] = trim($header[1]);
return $len;
}
);
try {
$api_response = curl_exec($curl_connection);
} catch (\Exception $e) {
Log::error($e->getMessage());
throw $e;
}
$token = json_encode($headers['x-subject-token']);
这在 localhost 中运行良好。但是在我的服务器 [Laravel Forge (Nginx+php)] 中,我无法以这种方式接收标头。任何人都可以建议任何其他好的方法来接收来自服务器的 curl 响应的标头吗?
解决方案
推荐阅读
- reactjs - react-google-maps 不在地图上渲染道具位置标记
- javascript - 承诺值和返回承诺 JS 的总和
- google-apps-script - 服务调用次数过多
- php - PHP - Groupon 商家 CURL 和 CSRF
- r - 使用 doParallel 而不是 apply
- django - Django - 删除外键时删除数据库条目
- javascript - js 中的 Date() 不能正确切换日期
- jq - 使用 jq 合并 json 对象流
- ssl - 为 .NET 解决方案(Kestrel 服务器)中的所有项目配置 SSL 证书路径
- python - _mysql_connector.MySQLInterfaceError:无法转换Python类型方法