PHP curl POST头在使用HTTPS的Laravel中间件上返回null



对于http域,它可以工作,返回预期的输出,但对于https,标头为null。下面是我的尝试。

后固化

$fields = [];
$headers = ['_token: 58SkLjsNMk0', 'Authorization: 6059DLaf39d4141' ];
$cURLConnection = curl_init('<https domain>/api/auth/check');
curl_setopt($cURLConnection, CURLOPT_POSTFIELDS, $fields);
curl_setopt($cURLConnection, CURLOPT_HTTPHEADER,$headers);
curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($cURLConnection);
curl_close($cURLConnection);
dd($res);

中间件

<?php
namespace AppHttpMiddleware;
use Closure;
class Api
{
/**
* Handle an incoming request.
*
* @param  IlluminateHttpRequest  $request
* @param  Closure  $next
* @return mixed
*/
public function handle($request, Closure $next){
return response()->json($request->header('Authorization'));
}
}

非常感谢任何帮助和建议。提前谢谢。

也许HTTPS版本中有一些30x重定向?尝试添加curl_setopt($cURLConnection, CURLOPT_FOLLOWLOCATION, true);以使cURL遵循重定向。

此外,仅出于调试目的(!(,请尝试添加-

curl_setopt($cURLConnection, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($cURLConnection, CURLOPT_SSL_VERIFYPEER, false); 

这些很好地禁用了根据主机/对等方的SSL证书验证证书名称。(将它们全部加在curl_exec()之前(

最新更新