我知道我的代碼由於其他症狀而以某種方式死亡,但即使我嘗試瞭解所有內容,但從來沒有任何消息。現在我已經通過使用連續的輸出語句縮小了它的範圍。HTTP Post完全退出線程,沒有發現異常,或者永遠掛起
String line = null;
try {
final HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 30000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
HttpPost httpPost = new HttpPost(url);
postDebugMessage("GlobalApplication", "Info", "Executing httppost");
HttpResponse httpResponse = httpClient.execute(httpPost);
postDebugMessage("GlobalApplication", "Info", "Getting entity");
HttpEntity entity = httpResponse.getEntity();
postDebugMessage("GlobalApplication", "Info", "Converting to line");
line = EntityUtils.toString(entity); //<- the bad one
postDebugMessage("GlobalApplication", "Info", "Conversion completed.");
}
catch (Exception ex) {
// Any error occurring here we're going to state is
// a network error.
postDebugMessage("GlobalApplication", "Exception", ex.getStackTrace()[0].toString());
throw new NetworkNotAvailableException(ex.toString());
}
根據我的調試輸出語句,行= EntityUtils.toString(實體)永遠不會完成,之後在整個服務線程沒有執行語句......整個事情剛剛消失。我知道EntityUtils.toString()可以拋出2個異常,一個IOException和一個ParseException,我將嘗試添加下一個,但不應該一個整體的異常捕獲它嗎?
是的,整個異常捕捉它,所以這不是問題。 – Kaj 2011-06-14 14:54:54
yep都擴展java.lang.Exception,並被try/catch塊捕獲。什麼是你的網址?應該是什麼樣的反應?你能確保服務器響應你的期望嗎? – Stuck 2011-06-14 15:02:43
我沿着「線路」進行操作。我現在做一個明確的檢查,看看是否從EntityUtils.toString()調用中出現空行。我實際上有一個try/catch(Exception)環繞的行操作,所以我想以後也會發現一個NPE。 – Rob 2011-06-14 15:19:09