我无法使用我的android应用程序将我需要的数据发布到我的PHP网站


I cannot post my required data to my PHP website using my android app

这是我的代码我的应用程序在按下发送按钮后立即崩溃

公共类MainActivity扩展ActionBarActivity{

    public void send(View v)
    {
        //get message from message box
        String  msg = msgTextField.getText().toString();
        //check whether the msg empty or not
        if(msg.length()>0) {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.soshelp.site50.net/index.php");
            try {
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                   nameValuePairs.add(new BasicNameValuePair("id", "01"));
                   nameValuePairs.add(new BasicNameValuePair("message", msg));
                   httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                   httpclient.execute(httppost);
                    msgTextField.setText(""); //reset the message text field
                    Toast.makeText(getBaseContext(),"Sent",Toast.LENGTH_SHORT).show();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            //display message if text field is empty
            Toast.makeText(getBaseContext(),"All fields are required",Toast.LENGTH_SHORT).show();
        }

您必须将代码放在一个单独的线程中才能正确执行,对于android中的所有服务器调用都是如此:

 public void send(View v)
    {
Thread thread = new Thread()
{
    @Override
    public void run() {
        //get message from message box
        String  msg = msgTextField.getText().toString();
        //check whether the msg empty or not
        if(msg.length()>0) {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.soshelp.site50.net/index.php");
            try {
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                   nameValuePairs.add(new BasicNameValuePair("id", "01"));
                   nameValuePairs.add(new BasicNameValuePair("message", msg));
                   httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                   httpclient.execute(httppost);
                    msgTextField.setText(""); //reset the message text field
                    Toast.makeText(getBaseContext(),"Sent",Toast.LENGTH_SHORT).show();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            //display message if text field is empty
            Toast.makeText(getBaseContext(),"All fields are required",Toast.LENGTH_SHORT).show();
        }
    }
};
thread.start();
}