0

    http 500状态码

    2023.06.26 | admin | 135次围观

    http请求返回500状态码,整体原因是:服务器内部错误。这个原因太过笼统,看了和没看直接懵逼。今天遇到这么一个崩溃的问题,这么大的范围,怎么找呢?

    然后,静下来打开思路,慢慢想一下,分析过程:

    1.客户端请求服务端的时候,返回500,首先服务端的请求发出去了,并且返回了500,错误定位到服务端。

    2.服务端里面代码竟然没有执行任何打印语句,说明还没有执行到逻辑,就已经出错了。

    3.这边服务端是lua语言写的服务器内部错误的状态码是,在这个文件的开头有这个加载文件的语句

    package.path = "../ta/?.lua;../xjnlib/src/?.lua;"..package.path
    package.cpath = "../xjnlib/bin/?.so;"..package.cpath

    4.首先要保证加载路径是对的。

    5.确保第4步,才到这里分析,加载路径对了,在加载过程中,如果出现语法错误的情况,这里就会直接返回500了。示例如下:

    这是一个lua的函数里的部分代码:

    function _M.pre_order_info(args)local datas ={}datas = {front_trans_type = "120",trans_amt = string.format("2d",args.trans_amt),pay_type = args.pay_type,xjn_code = args.xjn_code,req_date_time = req_time, --交易时间YYYYMMDDhhmmss--xjn_id = args.xjn_id  ,--1内部终端号--term = args.term , --2内部终端流水in_type = IN_TYPE[args.pay_type],--接入方式mcssn = args.mcssn,account_id = args.account_id,}if args.xjn_id ~= undefined thenlog(m_uuid,"获取预订单信息xjn_id  true==>" .. args.xjn_id)datas.xjn_id = args.xjn_id , --3内部终端号 此处语法错误endif args.term ~= undefined thenlog(m_uuid,"获取预订单信息term  true==>" .. args.term)datas.term = args.term , --4内部终端流水 此处语法错误end
    end

    这里是这样的,上面定义了一个datas的table,在表示1和2处的字段注释掉了,经过下面的if条件判断,添加其字段,这里3和4很显然是从1和2处复制过来的,后面就多了逗号,以至于造成语法错误服务器内部错误的状态码是,导致客户端访问时,出现了500的状态码!去掉3和4处的逗号即可。

    6.正确代码如下:

    function _M.pre_order_info(args)local datas ={}datas = {front_trans_type = "120",trans_amt = string.format("2d",args.trans_amt),pay_type = args.pay_type,xjn_code = args.xjn_code,req_date_time = req_time, --交易时间YYYYMMDDhhmmss--xjn_id = args.xjn_id  ,--1内部终端号--termn = args.term , --2内部终端流水in_type = IN_TYPE[args.pay_type],--接入方式mcssn = args.mcssn,account_id = args.account_id,}if args.xjn_id ~= undefined thenlog(m_uuid,"获取预订单信息xjn_id  true==>" .. args.xjn_id)datas.xjn_id = args.xjn_id  --3内部终端号endif args.term ~= undefined thenlog(m_uuid,"获取预订单信息term  true==>" .. args.term)datas.term = args.term  --4内部终端流水end
    end

    实际开发中可能出现的问题千变万化,请根据实际情况找问题所在。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: http状态码
    发表评论