2015-04-25 292 views
2

我試圖通過Java來POST請求發送到我的PHP頁面在Android Studio中httppost導致應用程序崩潰

首先我想httppost和按鍵

然後我讀了之後,應用程序崩潰我必須使用新的線程,我這樣做,但仍

應用程序崩潰

這裏是代碼:

public void send() { 
    final String name,phone,fb; 
    EditText one,two,three; 
    one=(EditText) findViewById(R.id.editText); 
    two=(EditText) findViewById(R.id.editText2); 
    three=(EditText) findViewById(R.id.editText3); 
    name=one.getText().toString(); 
    phone=two.getText().toString(); 
    fb=three.getText().toString(); 
    Thread T=new Thread(new Runnable() { 
     @Override 
     public void run() { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://test.com/test.php"); 
      try { 
       List <NameValuePair> nameValuePairs= new ArrayList<NameValuePair>(2); 
       nameValuePairs.add(new BasicNameValuePair("name",name)); 
       nameValuePairs.add(new BasicNameValuePair("number",phone)); 
       nameValuePairs.add(new BasicNameValuePair("fbname",fb)); 
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
       HttpResponse response= httpclient.execute(httppost); 

      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
      } 
     } 
    }); 
    T.start(); 
} 

日誌:http://pastebin.com/KQ9Y3rrG

+0

安置自己的日誌跟蹤 – Rami

+0

@Rami HTTP ://pastebin.com/MtgG62G2 – user2973413

+0

將'e.printStackTrace();'添加到'catch'塊並更新你的logtrace。 – Rami

回答

1

請確保您具有與清單文件中設置的互聯網通信的權限。如果沒有,它會拋出一個SecurityException並打破你的應用程序。

<uses-permission android:name="android.permission.INTERNET" /> 

除此之外,我看不到任何東西在你的日誌中可能是一個例外。

更新

檢查由問題從事實onClick事件本來trigget的send()方法,而在不知不覺中定義它沒有按規定View v參數來用戶提供的代碼後。

解決方案(這個問題,這並不意味着它將使httppost工作)是簡單的參數添加到方法的定義:

public void send (View v) { 
+0

我敢肯定,我有權限:( – user2973413

+0

然後發佈更多的代碼,我們沒有足夠的 –

+0

這是我的manifset http://pastebin.com/4KxdZynP我不知道它是否可以幫助 – user2973413