2011-09-21 23 views
1

我想給DefaultHttpClient轉換爲一個單獨的類調用DefaultHttpClient作爲一個Singleton

public class HttpClient { 
private static final String TAG = "&&----HTTPClient-----**"; 
public static void SendHttpPost (String URL, JSONObject jsonObjSend){ 

    try{  

      DefaultHttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httpPostRequest = new HttpPost(URL); 
} 

我怎麼會去嗎?其實我嘗試了一些實現它們的方法,但對我而言並不成功。

下面是我的單身應該如何看

public class DefaultHttpClient { 
static DefaultHttpClient instanceCE;  
public static DefaultHttpClient getInstance(){ 
    if(instanceCE == null){ 
     instanceCE = new DefaultHttpClient(); 
    } 

    return instanceCE; 

} 

DefaultHttpClient object = new DefaultHttpClient .getInstance(); //calling it here 

我知道這個實現是錯誤的等待你的投入,幫助我舉一個例子。謝謝 !

我已經把最後的實現不起作用。

public class HttpClient { 
public static DefaultHttpClient instanCE; 
private static final String TAG = "&&----HTTPClient-----**"; 
public static DefaultHttpClient getInstance(){ 
    if(instanCE == null){ 
     instanCE = new DefaultHttpClient(); 
    } 
    return instanCE; 
} 
public static void SendHttpPost (String URL, JSONObject jsonObjSend){ 

    try{  
      DefaultHttpClient httpclient = DefaultHttpClient.getInstance(); 
      HttpPost httpPostRequest = new HttpPost(URL); 

回答

2

沒有什麼不對您的代碼,除了你的錯誤調用它。

DefaultHttpClient object = DefaultHttpClient.getInstance(); 

此外,你的名字似乎混淆了。將DefaultHttpClient重命名爲其他類似MyHttpClient的單例的第一行和第三行。 這應該確定它。

乾杯!

1

這似乎是好的,你只是稱它錯了。 getInstance()方法是靜態的。所以,正確的做法如何調用它:

DefaultHttpClient object = DefaultHttpClient.getInstance(); 
+0

我看到了那個錯誤並重新嘗試了它,但是我得到一個錯誤,指出DefaultHttpClient方法未定義。我應該在SendHttpPost上傳遞instanceCE嗎? – Vinoth

+0

將單例類重命名爲其他內容,例如MyHttpSingleton。我認爲這裏的班級名稱正在碰撞。所以最後的調用將會像DefaultHttpClient object = MyHttpSingleton.getInstance(); –

+0

@Daniel看我的編輯 – Caner

2

3兩件事:

1)你需要創建一個私有的構造,所以,你一定getInstance()是創建一個實例的唯一途徑。

private DefaultHttpClient() { 
    // Optional Code 
} 

2)getInstance()是靜態的,所以它應該被稱爲是這樣的:

DefaultHttpClient object = DefaultHttpClient.getInstance(); 

3)你缺少關閉}

編輯:
「我得到一個錯誤,指出該方法對於DefaultHt是未定義的tpClient」

如果是這樣的話請確保您輸入正確類,而不是 org.apache.http.impl.client.DefaultHttpClient

相關問題