2012-09-24 65 views
1

我正在發送一個請求到Web服務器,有一些PHP腳本來返回一些數據。HTTP發佈請求工作在真實設備上,而不是在Android模擬器上工作

當我在真實手機中運行代碼時,代碼運行良好。在模擬器上測試時,它不起作用。它拋出「NULL POINTER EXCEPTION」。 exception.getMessage()告訴NULL

我也嘗試通過在瀏覽器應用程序中直接在模擬器中請求URL來訪問此服務器,並且它工作正常。當然,我得到的錯誤,沒有發送數據,因爲我沒有發送任何後期參數,但它是可及的。我在開始時遇到了證書錯誤,但在點擊確定後它仍然有效。

當我試圖連接到我的開發機器上的本地服務器(10.0.2.2)時,我遇到了同樣的問題。我認爲這個問題是在配置,所以我上傳到網絡服務器,但仍然得到了同樣的問題:

public String postData(ArrayList<String> params) { 

    String responseText=null; 

    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(SERVERURL); 
    Log.i(TAG, "Posting HttpPost .. . "); 
    //goes well till this line 

    try { 
    // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 

     nameValuePairs.add(new BasicNameValuePair("long", params.get(0))); 
     nameValuePairs.add(new BasicNameValuePair("lat", params.get(1))); 


     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

     Log.i(TAG, "Posting httpclient.execute .. . "); 

     responseText = convertStreamToString(response.getEntity().getContent()); 
     //responseText = EntityUtils.toString(response.getEntity()); 
     if (responseText !=null) { 

      Log.i(TAG,"PRESPONSE TEXT:"+ responseText); 
     }      
     else 
      Log.i(TAG," Entity RESPONSE is NULL"); 

    } catch (ClientProtocolException e) { 

     Log.i(TAG, " POST ClientProtocolException " +e.getMessage()); 
    } catch (IOException e) { 
     Log.i(TAG, " POST IOException " +e.getMessage()); 
    } catch (Exception el) { 
     Log.i(TAG, " POST Exception " +el.getMessage()); 
    } 

    return responseText; 
} 
+0

你可以擴展'當在模擬器上測試時,它不起作用。什麼不行?它是否會拋出異常?它是否返回null? – psubsee2003

+0

拋出「NULL POINTER EXCEPTION」。 exception.getMessage()告訴NULL – MSaudi

+1

嘗試在各種模擬器(不同的操作系統版本,不同的屏幕密度等)測試。我有大約15種不同的模擬器可供測試,而且我的應用程序在其中一個啓動時一直崩潰。該應用程序已在市場上幾個星期,我沒有抱怨類似的問題。 – Sababado

回答

1

這個問題是通過使另一仿真器針對另一個平臺版本解決。我正在使用Google API開發Android 4。我用Google API製作了另一個仿真器2.3 API 10。

感謝這裏的人們建議嘗試其他模擬器或重新啓動它。

相關問題