HTTP POST + ANDROID没有给出响应

时间:2014-01-21 13:27:39

标签: android

我是Android的初学者。我想将数据发送到我的PHP页面。但在这里,我试图干杯那个帖子的价值观。但是没有回应。 Plz帮助我。 我的代码是:

public class send_msgActivity extends Activity{

//static final String KEY_NAME = "name";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.send_msg);

    Button btn_ok = (Button) findViewById(R.id.btn_ok);

    btn_ok.setOnClickListener(new View.OnClickListener() {
        @Override 
        public void onClick(View arg0) {
            EditText editText1 = (EditText)findViewById(R.id.sender);
            String S_name = editText1.getText().toString();
            EditText editText2 = (EditText)findViewById(R.id.reciever);
            String S_email = editText2.getText().toString();
        postData(S_name,S_email);    
        }
    });
};

public void postData(String name,String email) {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.URL.com/yourpage.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("Fname", name));
        nameValuePairs.add(new BasicNameValuePair("Femail", email));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        //HttpResponse response = httpclient.execute(httppost, new BasicResponseHandler());
        HttpResponse response = httpclient.execute(httppost);
        String reverseString = response.toString();
        Toast.makeText(this, "response" + reverseString, Toast.LENGTH_LONG).show();

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 
}

1 个答案:

答案 0 :(得分:0)

使用此示例如何编码HTTPpost方法

package com.example.login;

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

import org.apache.http.HttpResponse;a
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;



import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;


public class pdf extends Activity
{
    public boolean connect=false,logged=false;
    public String db_select;
    ListView l1;
    String mPwd,UName1="Success",UName,ret;
    public Iterator<String> itr;
    private String SERVICE_URL = "http://61.12.7.197:8080/Agero/person/pdf";
    private String SERVICE_URL1 = "http://61.12.7.197:8080/Agero/person/url";
    //private final String SERVICE_URL = "http://10.1.1.138:8080/Agero/person/pdf";
    //private final String SERVICE_URL1 = "http://10.1.1.138:8080/Agero/person/url";
    private final String TAG = "Course";
    ArrayList<String> todoItems;
    Boolean isInternetPresent = false;
    ConnectionDetector cd;
    ArrayAdapter<String> aa;
    public List<String> list1=new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pdf);
         l1 = (ListView)findViewById(R.id.list);
         todoItems = new ArrayList<String>();
            aa = new ArrayAdapter<String>(this,R.layout.list_row,R.id.title,todoItems);
            l1.setAdapter(aa);
            todoItems.clear();
            cd = new ConnectionDetector(getApplicationContext());
            isInternetPresent = cd.isConnectingToInternet();
            if(isInternetPresent)
            {
            try
            {
                validat_user();
                //display("hi");

            }
            catch(Exception e)
            {
                display("Network error.\nPlease check with your network settings.");
            }
            }
            else
            {
                display("No Internet Connection..");
            }

            l1.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                 // TODO Auto-generated method stub
                 String name=(String)parent.getItemAtPosition(position);

                 /*Toast.makeText(getBaseContext(), name, Toast.LENGTH_LONG).show();
                  Intent i = new Intent(getBaseContext(),Webview.class);
                  i.putExtra("USERNAME", name);
                  startActivity(i);*/
                 cd = new ConnectionDetector(getApplicationContext());
                    isInternetPresent = cd.isConnectingToInternet();
                 if(isInternetPresent)
                    {
                 try
                    {
                        validat_user1(name);

                    }
                    catch(Exception e)
                    {
                        display("Network error.\nPlease check with your network settings.");

                    }

                    }
                 else
                    {
                        display("No Internet Connection..");
                    }
                }
            });




    }
    public void display(String msg) 
    {
        Toast.makeText(pdf.this, msg, Toast.LENGTH_LONG).show();
    }
    private void validat_user()
    {

        WebServiceTask wst = new WebServiceTask(WebServiceTask.POST_TASK, this, "");

       // wst.addNameValuePair("State", stg1);
       // wst.addNameValuePair("Emp_PWD", stg2);
       // db_select=stg1;
        //display("I am");
        wst.execute(new String[] { SERVICE_URL });
        //display(SERVICE_URL);

    }
    private void validat_user1(String stg1)
    {
        db_select=stg1;
        WebServiceTask wst = new WebServiceTask(WebServiceTask.POST_TASK, this, "Loading...");

        wst.addNameValuePair1("PDF_NAME", stg1);


        wst.execute(new String[] { SERVICE_URL1 });

    }
    @SuppressWarnings("deprecation")
    public void no_net()
    {
        display( "No Network Connection");
        final AlertDialog alertDialog = new AlertDialog.Builder(pdf.this).create();
        alertDialog.setTitle("No Internet Connection");
        alertDialog.setMessage("You don't have internet connection.\nElse please check the Internet Connection Settings.");
        //alertDialog.setIcon(R.drawable.error_info);
        alertDialog.setCancelable(false);
        alertDialog.setButton("Close", new DialogInterface.OnClickListener() 
        {
            public void onClick(DialogInterface dialog, int which)
            {   
                alertDialog.cancel();
                pdf.this.finish();
                System.exit(0);
            }
        });
        alertDialog.setButton2("Use Local DataBase", new DialogInterface.OnClickListener() 
        {
            public void onClick(DialogInterface dialog, int which)
            {
                display( "Accessing local DataBase.....");
                alertDialog.cancel();
            }
        });
        alertDialog.show();
    }

    private class WebServiceTask extends AsyncTask<String, Integer, String> {

        public static final int POST_TASK = 1;

        private static final String TAG = "WebServiceTask";

        // connection timeout, in milliseconds (waiting to connect)
        private static final int CONN_TIMEOUT = 3000;

        // socket timeout, in milliseconds (waiting for data)
        private static final int SOCKET_TIMEOUT = 5000;

        private int taskType = POST_TASK;
        private Context mContext = null;
        private String processMessage = "Processing...";

        private ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();

        private ProgressDialog pDlg = null;

        public WebServiceTask(int taskType, Context mContext, String processMessage) {

            this.taskType = taskType;
            this.mContext = mContext;
            this.processMessage = processMessage;
        }

        public void addNameValuePair1(String name, String value) {

            params.add(new BasicNameValuePair(name, value));
        }
        @SuppressWarnings("deprecation")
        private void showProgressDialog() {

            pDlg = new ProgressDialog(mContext);
            pDlg.setMessage(processMessage);
            pDlg.setProgressDrawable(mContext.getWallpaper());
            pDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            pDlg.setCancelable(false);
            pDlg.show();

        }

        @Override
        protected void onPreExecute() {

            showProgressDialog();

        }

        protected String doInBackground(String... urls) {

            String url = urls[0];
            String result = "";

            HttpResponse response = doResponse(url);

            if (response == null) {
                return result;
            } else {

                try {

                    result = inputStreamToString(response.getEntity().getContent());

                } catch (IllegalStateException e) {
                    Log.e(TAG, e.getLocalizedMessage(), e);

                } catch (IOException e) {
                    Log.e(TAG, e.getLocalizedMessage(), e);
                }

            }

            return result;
        }

        @Override
        protected void onPostExecute(String response) {

            handleResponse(response);
            pDlg.dismiss();

        }


        // Establish connection and socket (data retrieval) timeouts
        private HttpParams getHttpParams() {

            HttpParams htpp = new BasicHttpParams();

            HttpConnectionParams.setConnectionTimeout(htpp, CONN_TIMEOUT);
            HttpConnectionParams.setSoTimeout(htpp, SOCKET_TIMEOUT);

            return htpp;
        }

        private HttpResponse doResponse(String url) {

            // Use our connection and data timeouts as parameters for our
            // DefaultHttpClient
            HttpClient httpclient = new DefaultHttpClient(getHttpParams());

            HttpResponse response = null;

            try {
                switch (taskType) {

                case POST_TASK:
                    HttpPost httppost = new HttpPost(url);
                    // Add parameters
                    httppost.setEntity(new UrlEncodedFormEntity(params));

                    response = httpclient.execute(httppost);
                    break;
                }
            } catch (Exception e) {
                display("Remote DataBase can not be connected.\nPlease check network connection.");

                Log.e(TAG, e.getLocalizedMessage(), e);
                return null;

            }

            return response;
        }

        private String inputStreamToString(InputStream is) {

            String line = "";
            StringBuilder total = new StringBuilder();

            // Wrap a BufferedReader around the InputStream
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));

            try {
                // Read response until the end
                while ((line = rd.readLine()) != null) {
                    total.append(line);
                }
            } catch (IOException e) {
                Log.e(TAG, e.getLocalizedMessage(), e);
            }

            // Return full string
            return total.toString();
        }

    }
    public void handleResponse(String response) 
    {    //display("JSON responce is : "+response);
        if(!response.equals(""))
        {
       try {

            JSONObject jso = new JSONObject(response);


                  int UName = jso.getInt("status1");

                  if(UName==1)
                  {
                      String status = jso.getString("status");
                      ret=status.substring(13,status.length()-2);
                      todoItems.add(0, status);
                    aa.notifyDataSetChanged();
                  }
                  else if(UName==-1)
                  {
                      String status = jso.getString("status");
                      //display(status);
                        Intent intObj=new Intent(pdf.this,Webview.class);
                         intObj.putExtra("USERNAME", status);
                        startActivity(intObj);
                  }
                  else
                  {
//                     int count=Integer.parseInt(UName);
//                     display("Number of Projects have been handling in AFL right now: "+count);
                    list1=new ArrayList<String>();

                    JSONArray array=jso.getJSONArray("reps1");
                    for(int i=0;i<array.length();i++)
                    {
                        list1.add(array.getJSONObject(i).getString("pdfName"));

                    }
                    itr=list1.iterator();
                    while(itr.hasNext())
                    {
                         //str1=itr.next()+"\n";
                        todoItems.add(0, itr.next().toString());
                        aa.notifyDataSetChanged();
                    }

                    //tv1.setText(str1);


                  }      
        } catch (Exception e) {
            Log.e(TAG, e.getLocalizedMessage(), e);
            return;
        }
        }
        else
        {
            display("unable to reach the server");
        }


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.activity_main, menu);
        return true;
    }



    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.home:
            Intent intObj=new Intent(pdf.this, MainActivity.class);
            intObj.putExtra("finish", true); // if you are checking for this in your other Activities
            intObj.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
                            Intent.FLAG_ACTIVITY_CLEAR_TASK |
                            Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intObj);
            //pdf.this.finish();
            finish();
            return (true);

        }
        return super.onOptionsItemSelected(item);
    }

}