我希望有人能夠找到這個問題。我有一個完全在服務器通信中工作的應用程序。不幸的是,當移動到Windows 8 CP時,我失去了Eclipse工作區。我仍然有.apk,並且使用Dex2jar和jd-gui,我能夠挽救很多代碼。我已經把所有這一切都恢復到了工作狀態,但是這一點。我試圖發送一個URL到服務器,並取回字符串響應。這裏的代碼:Android HTTP客戶端問題
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
public class login extends Activity{
<code>
public void pushLogin(View paramView){
try{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(loginFinal);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
errorTextView.setText(loginFinal);
//code gets here
String response = client.execute(request, responseHandler);
//does not get here
errorTextView.setText(response);
}
我的TextView總是包含字符串loginFinal,我不能讓它顯示響應。爲了檢查這一點,我在嘗試獲取字符串響應後將errorTextView.setText(loginFinal);
移至了行。它也沒有在這一點上運行。我正在撕掉我的頭髮,我確信這很簡單。我已經獲得了互聯網許可,我甚至在這個網站上發現了我的這個應用程序部分的原始代碼,因爲我發佈了一個單獨的問題。就我所知,此代碼是相同的。我能想到的唯一變化就是我將我的構建目標從Froyo移到了Honeycomb,因爲我決定要專注於平板電腦。
最好的部分是,當我按下按鈕,觸發pushLogin時,LogCat什麼也不做。它似乎並沒有觸發client.execute(request, responseHandler)
。
爲什麼不檢查client.execute以查看它是否引發異常。你確定服務器啓動,你想聯繫? – dbryson 2012-03-06 03:39:42
try {}之後的catch塊中有什麼?如果你說它不在client.execute後面執行,我必須假設它正在發生異常。你有沒有在調試器中加入? – Tim 2012-03-06 03:39:52
我有一個catch方法。我對此仍然非常陌生,但我覺得這應該爲某種形式的錯誤加油印象。 'catch(Exception e){ Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG);' 我從來沒有得到錯誤的敬酒。有什麼問題嗎? – 2012-03-06 04:26:56