1

我正在使用Google的網絡庫Volley執行一組操作。特別是,我依靠StringRequest來獲取一些受保護頁面的HTML。爲了執行(已認證)請求,我總是向請求中添加一組cookie。爲什麼有時候Volley的StringRequest會給我一個空的迴應?

問題是,沒有任何明顯的原因,Volley 有時給我一個空的源代碼! (和沒有204狀態代碼:這是一個純粹的200)。

@Override 
protected Response<String> parseNetworkResponse(NetworkResponse response) { 
    // HERE: response.data sometimes has size 0! 
    // on the other hand, response.statusCode is 200. 
    // [...] 
} 

我完全肯定這是不是在遠程服務器的問題(當我瀏覽了同樣的頁面,用同樣的Cookie,使用網頁瀏覽器,一切都很好)。我也有很多關於TimeoutError的問題(不知道它是否有關聯)。

我真的很想切換到特別寫的東西,以便一勞永逸地解決問題,但Volley在盒子中實現的多線程功能仍然是一個限制我的巨大因素。

+0

您是否嘗試運行像Charles或Fiddler2這樣的HTTP代理以確保您獲得了正確的響應正文? – rmtheis

回答

0

關於TimeoutError,您是否設置了重試策略?例如,與

 stringRequest.setRetryPolicy(new DefaultRetryPolicy(
      60000, 
      DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
相關問題