vince-styling / Netroid

Netroid is a Http Framework for Android that based on Volley
http://netroid.vincestyling.com/
285 stars 126 forks source link

为什么NetroidError里的networkResponse一直是null呢? #6

Closed cnazev closed 9 years ago

cnazev commented 9 years ago

之前用Volley的时候还是能拿到错误响应内容的

vince-styling commented 9 years ago

异常的处理策略没有做调整,response为空是因为客户端未能成功与服务端建立连接,最大可能是超时。NetroidError有多个子类,查看返回的对象是哪个子类就可以知道失败的原因。

cnazev commented 9 years ago

关问题倒挺快 你把 com.duowan.mobile.netroid.toolbox.BasicNetwork 文件103行 responseContents = request.handleResponse(httpResponse, mDelivery); 前置到99行去 反正就是 throw new IOException() 之前 再试试 就能拿回响应的错误内容

cnazev commented 9 years ago

如果你用的是Eclipse,在你原先的BasicNetwork文件里 122行-129行会被警告为dead code 就是因为你那个responseContents未处理 肯定是null.

vince-styling commented 9 years ago

我详细对比了最新的Volley代码,确实是因为responseContents === null引起的response无法返回,我在理解并修改源代码逻辑时考虑得不够精细,非常感谢你的提醒。同时也表示抱歉,问题关得太快了。 希望能得到更多同行的热心纠正,帮助这个项目完善起来!!!