昨天很多人都碰到了验证码图片问题,验证码图片问题一直有,只是从未像昨天那样严重过。
本文粗浅地跟大家探讨一下。我们先看一下以下 log 片段。
从 log 中可以看出,只有第一张标书 50 秒时出价、50秒时收到 2-1 消息(该消息包含验证码提示文字、验证码图片URL和一个 priceCode )、50秒时图片下载成功。这是最好的情况。
然而所有其它的标书都没有及时下载成功验证码图片。比较普遍的是,50秒出价、2+ 秒之后才收到 2-1 消息、55秒时图片才下载成功,这种情况下,没有打码员能及时打码。
而且,验证码卡的现象从第一阶段就开始了。
什么原因?大家各种说法都有,有的说,是图片服务器压力太大,导致响应缓慢。有的说,是“故意”的“调控”... 真相是什么,无法考证。
且不要去追究是什么原因。出现这种问题改怎么处理呢?先分析一下,看看有解也无。
以下三张图片显示了官方 swf 程序的源代码。
请求验证码图片是这么一个流程:
发送出价请求。
投标服务器返回 2-1 消息,告诉 swf 程序验证码提示文字 和 验证码图片 URL 还有一个 priceCode.
swf 程序根据图片 URL 去对应的图片服务器下载图片。
这个流程中的 2 和 3 都可能会出问题。
2出问题是指投标服务器对你的出价请求回应滞后缓慢或者干脆就没有回应,你没有收到 2-1 消息自然就没办法得到验证码图片,只能重新发送出价请求,但是必须至少6秒之后才能发送,否则它说你请求太频繁。
3出问题,以前一直表现在给你一个415字节的HTML文件(而不是PNG),如下所示(这也说明图片服务器上可能有个拦截器,做外挂的必须要提防这点,不要被它反外挂)
而现在,3出问题又多了一个特征,下载图片缓慢。按理说,网络这么好,服务器这么好,怎么可能下载缓慢呢?只可能是硬件或软件上出了问题,是不是人为故意的,这个不好说。
了解了上面这个流程,要试图解决这个问题,只能从 3 这里入手,祈祷2不要出问题(2如果出了问题,最多只能通过软件的方法让程序6秒后自动重新请求)。姑且乐观一点,假定2不出问题,那么3怎么解决呢?留给诸位思考吧。
领取专属 10元无门槛券
私享最新 技术干货