2013-07-17 141 views
0

所以,我在我的活動代碼(佈局配套按鈕的用戶界面,觸發方法onSaveRegistrationClick):的Android無法使用HTTP POST方法

public void onSaveRegistrationClick (View view){ 

    postData(); 

} 

public void postData(){ 

    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://www.mywebsite.com"); 

    try 
    { 
     httpclient.execute(httppost); 
    } catch (Exception e){ 
     Toast.makeText(this, "Not working" , Toast.LENGTH_SHORT).show(); 
    } 
} 

在我的網站,我有其中的index.php在通話中保存一行數據庫,這有助於我確定Android是否連接到網站。但是,我收到httpclient.execute(httppost);行的例外情況。我錯在哪裏?

P.S. - 我在AndroidManifest.xml中添加的權限(我加了額外連,即:

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>  
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> 
+2

什麼是logcat的說 –

+0

沒什麼,因爲異常被捕獲但是,當我移動接球,它寫道:? java.lang.IllegalStateException:無法執行活動的方法 – Tommz

+4

確保您在非ui線程上執行聯網任務!從3.0版開始,Android變得更加虔誠,它不會讓你在主線上執行聯網任務。 –

回答

0

的錯誤是,你必須使用一個線程,而不是一個功能, 試試這個:

new MyTask().execute(); 

它調用的過程

private class MyTask extends AsyncTask<Void, Void, Void> { 

    String textResult; 
    private Exception exception; 


    @Override 
    protected Void doInBackground(Void... voids) 
    { ...your code }