测试一个查询数据的接口,类似这样的URL:.../search?type=Astring,在浏览器中输入URL获取到的数据为空,但通过其它方式确认数据库中确实已有数据,怀疑是接口实现问题。找接口实现的开发排查。
一段时间后被告知,他那里正常,并截图比对,结果发现浏览器中测试时URL写成:.../search?type="Astring"。原来是因为参数传入错误。
没有很快发现问题的深层次原因是没有对浏览器URL有足够深入的理解,在用时忘了它本身就是一个纯String,所以里面的参数也不能再像代码里一样加“”。如果对URL很理解,知道它里面就哪些特定的分隔符,且特殊字符要编码传输,就不会犯这样的低级错误。