zoukankan      html  css  js  c++  java
  • laravel5.5 不能正常自动回复的问题

      虽然开启了APP_DEBUG 但是 log 却没有记录任何错误信息,后来经过测试发现原来是路由问题,因为微信服务器发送消息是使用 post 方法,但是我的路由定义只定义了 get (tp 用多了习惯了不分 get、post),所以会导致路由异常,从而导致微信公众号上面会提示服务器故障,中间方向错误,导致排查很久,后来才想起可以在异常处理文件里面写 log。

      这时候我们可以在 appExceptionsHandler.php 的 report 方法加上下面几句,出异常的时候记录错误信息:

            if (env('APP_DEBUG')) {
                Log::error('error file: ' . $exception->getFile());
                Log::error('error line: ' . $exception->getLine());
                Log::error('error message: ' . $exception->getMessage());
                Log::error('exception type: ' . get_class($exception));
                Log::error('trace' . $exception->getTraceAsString());
            }
    

      加上之后 report 方法如下:

      这样一来,开发过程中的 500 就全部记录下来(前提是开启debug模式),这样开发的时候,微信提示服务器故障的时候就可以去看 log 是什么原因导致的。

      

      还有一个需要注意的是:laravel 默认开启 csrf 的验证,我们可以在 appHttpKernel.php $middlewareGroups 中可以看到有这么一行:

      AppHttpMiddlewareVerifyCsrfToken::class,

      但是我们需要清楚的是,微信 post 过来的数据是没有这个 token 的,所以我们需要把这一行注释掉,否则在验证这一步就会返回,得不到我们想要的结果。

  • 相关阅读:

    Android自己主动化測试之Monkeyrunner用法及实例
    递归函数的概念使用方法与实例
    正则、grep、sed、awk
    我的java学习笔记(一)
    mysql经常使用命令总结
    JSP动作--JSP有三种凝视方式
    http长连接和短连接
    StirngUtil工具类 之 邮箱注冊 域名不区分大写和小写方法
    在Eclipse上搭建Cocos2d-x的Android开发环境
  • 原文地址:https://www.cnblogs.com/eleven24/p/7663866.html
Copyright © 2011-2022 走看看