如何从Android应用程序发送数据到webser

时间:2014-03-07 15:21:35

标签: android android-asynctask android-webservice

我想将数据发送到在线网络服务器,我创建了数据库...我可以通过网站传输数据但是当我尝试从我的Android应用程序发送数据时...我无法发送它...我不喜欢不知道可以通过创建web api传输数据.. ????

这是我的班级......

public class RestFulWebservice extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.rest_ful_webservice);

    final Button GetServerData = (Button) findViewById(R.id.GetServerData);

    GetServerData.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            // WebServer Request URL
            String serverURL = "http://bnncollege.org/self-funded-accounts-finance-sy.php";

            // Use AsyncTask execute Method To Prevent ANR Problem
            new LongOperation().execute(serverURL);
        }
    });

}

// Class with extends AsyncTask class
private class LongOperation extends AsyncTask<String, Void, Void> {

    // Required initialization

    private final HttpClient Client = new DefaultHttpClient();

    @Override
    protected void onProgressUpdate(Void... values) {
        // TODO Auto-generated method stub
        super.onProgressUpdate(values);
    }

    private String Content;
    private String Error = null;
    private ProgressDialog Dialog = new ProgressDialog(
            RestFulWebservice.this);
    String data = "";
    TextView uiUpdate = (TextView) findViewById(R.id.output);
    TextView jsonParsed = (TextView) findViewById(R.id.jsonParsed);
    int sizeData = 0;
    EditText serverText = (EditText) findViewById(R.id.serverText);

    protected void onPreExecute() {
        // NOTE: You can call UI Element here.

        // Start Progress Dialog (Message)

        Dialog.setMessage("Please wait..");
        Dialog.show();

        try {
            // Set Request parameter
            data += "&" + URLEncoder.encode("surname", "UTF-8") + "="
                    + serverText.getText();
            Log.i("server", data);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    // Call after onPreExecute method
    protected Void doInBackground(String... urls) {

        /************ Make Post Call To Web Server ***********/
        BufferedReader reader = null;

        // Send data
        try {

            // Defined URL where to send data
            URL url = new URL(urls[0]);

            // Send POST data request
            Log.i("url", url.toString());
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            conn.connect();

            OutputStreamWriter wr = new OutputStreamWriter(
                    conn.getOutputStream());
            wr.write(data);
            wr.flush();

            // Get the server response
            reader = new BufferedReader(new InputStreamReader(
                    conn.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line = null;

            // Read Server Response
            while ((line = reader.readLine()) != null) {
                // Append server response in string
                sb.append(line + "\n");
            }

            // Append Server Response To Content String
            Content = sb.toString();
        } catch (Exception ex) {
            Error = ex.getMessage();
        } finally {
            try {

                reader.close();
            }

            catch (Exception ex) {
            }
        }

        /*****************************************************/
        return null;
    }

    protected void onPostExecute(Void unused) {
        // NOTE: You can call UI Element here.

        // Close progress dialog
        Dialog.dismiss();

        if (Error != null) {

            uiUpdate.setText("Output : " + Error);

        } else {

            // Show Response Json On Screen (activity)
            uiUpdate.setText(Content);

            /****************** Start Parse Response JSON Data *************/

            String OutputData = "";
            JSONObject jsonResponse;

            try {

                /******
                 * Creates a new JSONObject with name/value mappings from
                 * the JSON string.
                 ********/
                jsonResponse = new JSONObject(Content);

                /*****
                 * Returns the value mapped by name if it exists and is a
                 * JSONArray.
                 ***/
                /******* Returns null otherwise. *******/
                JSONArray jsonMainNode = jsonResponse
                        .optJSONArray("Android");

                /*********** Process each JSON Node ************/

                int lengthJsonArr = jsonMainNode.length();

                for (int i = 0; i < lengthJsonArr; i++) {
                    /****** Get Object for each JSON node. ***********/
                    JSONObject jsonChildNode = jsonMainNode
                            .getJSONObject(i);

                    /******* Fetch node values **********/
                    String name = jsonChildNode.optString("name")
                            .toString();
                    String number = jsonChildNode.optString("number")
                            .toString();
                    String date_added = jsonChildNode.optString(
                            "date_added").toString();

                    OutputData += " Name            : "
                            + name
                            + " \n "
                            + "Number       : "
                            + number
                            + " \n "
                            + "Time                 : "
                            + date_added
                            + " \n "
                            + "--------------------------------------------------\n";

                    // Log.i("JSON parse", song_name);
                }
                /****************** End Parse Response JSON Data *************/

                // Show Parsed Output on screen (activity)
                jsonParsed.setText(OutputData);

            } catch (JSONException e) {

                e.printStackTrace();
            }

        }
    }

}

}

这是链接,我可以发送数据到网络服务器但我无法从Android应用程序发送数据.....

http://bnncollege.org/self-funded-accounts-finance-sy.php

0 个答案:

没有答案