How send data to website by using android app

22,069

Solution 1

Since Android 3.x you can't perform network operations in main thread. You need to use AsyncTask or separate thread where you can call your postData method.

http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

Solution 2

Use the following code

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://yoursite.com/index.php");

String MyName = toPost; 

try 
{
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("action", MyName));

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    HttpResponse response = httpclient.execute(httppost);

    InputStream is = response.getEntity().getContent();

    BufferedReader br = new BufferedReader(new InputStreamReader(is));

    result = br.readLine();
    //This is the response from a php application
    String reverseString = result;
    Toast.makeText(this, "result" + reverseString, Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
    Toast.makeText(this, ""+e, Toast.LENGTH_LONG).show();
}

Solution 3

i hope this help u alloott
package com.example.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button but=(Button)findViewById(R.id.button1);
    but.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            postData();

        }
    });


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
public void postData() {
    // Create a new HttpClient and Post Header
    class ss extends AsyncTask<Void, Void, String>
    {

    @Override
    protected String doInBackground(Void... params) {
        // TODO Auto-generated method stub
        HttpClient httpclient = new DefaultHttpClient();
        String result = null;
        HttpPost httppost = new HttpPost("http://www.techdoo.com/test.php");

        try 
        {

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("action", "fadeel"));

        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpclient.execute(httppost);

        InputStream is = response.getEntity().getContent();

        BufferedReader br = new BufferedReader(new InputStreamReader(is));

        result = br.readLine();
        //This is the response from a php application
        String reverseString = result;
        EditText edit1=(EditText)findViewById(R.id.editText1);
        edit1.setText(result);
        //  Toast.makeText(this, "result" + reverseString, Toast.LENGTH_LONG).show();
        }
        catch(Exception e)
        {
        //Toast.makeText(this, ""+e, Toast.LENGTH_LONG).show();
        }
        return result;
    }
    @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub
        if(result==null)
        {
            Toast.makeText(getApplicationContext(), "not ok", Toast.LENGTH_LONG).show();
        }
        else
            Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();

            super.onPostExecute(result);
        }

    }
    ss s=new ss();
    s.execute(null,null,null);
}

}

Share:
22,069
Tikitaka
Author by

Tikitaka

Nothing impossible if we willing to do it

Updated on April 11, 2021

Comments

  • Tikitaka
    Tikitaka about 3 years

    I'm trying to send some data to my website. When the button is clicked, data need to be sent to the web site

    but I got some errors when I am running the program

    when I clicked the button this message appears "unfortunately app has stopped" then it exit my application.

     public class testInput extends Activity {
    
    Button Setbutton;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    
    
        setContentView(R.layout.test_input_page);
    
        Setbutton=(Button)findViewById(R.id.setbtn);
    
    Setbutton.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            testInput ti=new testInput();
                //Create the intent
    
    
    
               ti.postData("Sent Data");
    
    
        });
    
    }
    
    public void postData(String toPost) {
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://mysite.com/index.php");
    
        //This is the data to send
        String MyName = toPost; //any data to send
    
        try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("action", MyName));
    
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    
        // Execute HTTP Post Request
    
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String response = httpclient.execute(httppost, responseHandler);
    
        //This is the response from a php application
        String reverseString = response;
        Toast.makeText(this, "response" + reverseString, Toast.LENGTH_LONG).show();
    
        } catch (ClientProtocolException e) {
        Toast.makeText(this, "CPE response " + e.toString(), Toast.LENGTH_LONG).show();
        // TODO Auto-generated catch block
        } catch (IOException e) {
        Toast.makeText(this, "IOE response " + e.toString(), Toast.LENGTH_LONG).show();
        // TODO Auto-generated catch block
        }
    
        }//end postData()
    

    This is my PHP code.

    <?php
    
    //code to reverse the string
    
    $reversed = strrev($_POST["action"]);
    
    echo $reversed;
    
    ?>
    

    I got permission also for use internet in my app.