laravel 使用curl请求,返回值被认为是一次请求而出错

发布于 2022-09-05 00:22:48 字数 2086 浏览 50 评论 0

需求背景:
项目需要对其他平台进行一次curl的请求,我发送手机号过去,其他平台发送验证码给用户并给我发送成功的回执.
问题:
本地调试是没问题的,但是上到服务器上却发生了将curl回执,即$data = curl_exec($curl);中的$data数据当成是一次请求,并且还要验证这个$data的token,还要在路由文件中寻找他的分发规则...
我的排错思路:
我首先在
./vendorlaravelframeworksrcIlluminateFoundationHttpMiddlewareVerifyCsrfToken.php
的handle方法中添加了这样一句 var_dump(Request::path()):

public function handle($request, Closure $next)
{

var_dump(Request::path());
if ($this->isReading($request) || $this->shouldPassThrough($request) || $this->tokensMatch($request)) {
    return $this->addCookieToResponse($request, $next($request));
}

throw new TokenMismatchException;

}

结果打印出来的路径是发送curl请求的url,然后还有我要进行curl通信的平台url,这就导致了我之后csrf_token报错和路径报错的原因.
我发送curl请求的控制器方法为:

/*
 * 发送验证码请求
 */

public function ajaxRquest(Request $request) {
    $input['tel_num'] = $request->input('tel');
    $url = config('Api');
    $url = $url['sendVerifyCode'];
    if ($request->input('code_attr') == 'submitInformation') {
        $input['union_event'] = 'submitInformation';
    } else {
        $input['union_event'] = 'queryProgress';
    }
    $result = $this->postCurlInfo($url, json_encode($input));
    return $result;
}

public function postCurlInfo($url, $data) {
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_HTTPHEADER => array(
            "cache-control: no-cache",
            "content-type: application/json",
        ),
    ));
    return curl_exec($curl);
}

而我打印出来的路径是:

string(16) "Index/ajaxRquest" string(31) "v1/serviceCenter/sendVerifyCode"

第一个string是我发送curl的方法路径,而后面那个是发送回执的url.

我觉得很奇怪,不应该出现将curl的返回当做是一次请求的啊!请问大家为什么会这样?谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

┈┾☆殇 2022-09-12 00:22:48

没理解你的问题,不过发起http请求,不推荐直接curl操作,可以试试laravel推荐的zttp库

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文