这段时间在调试微光互联的MX系列扫码设备时 发现一些问题 折腾了我好几天 终于研究出来了 发现一些.NET可能存在的坑 记录一下
目前扫码器的工作原理是 扫码时 将携带二维码中的数据跟设定好的设备号 通过HTTP协议的 POST方式访问服务端的接口,接收到返回字符串“code=0000”,则表示扫码成功,设备显示正确扫码行为(亮绿灯),否则显示错误扫码行为(亮红灯)
我测试的时候一直遇到 设备一直扫同一个码 偶尔成功偶尔失败,查看服务器的日志,每次的失败扫码行为(亮红灯),服务器仍接收到数据 的问题,而接口仅返回“code=0000”,理论上,扫码行为都应成功(亮绿灯)。
设备返厂了几次,排除了设备、网络、服务器问题,最终锁定为接口的问题,研究了好多天,终于搞定,最后问题在于 接口采用了void返回值,通过流直接将数据发送给后端,这里就会涉及到一个void返回值的问题:void不会马上返回一个200,而且返回一个204给服务器给应答,直接返回string就是直接200返回了。所以将返回值由void改成string 成功解决