2015-04-25 237 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