簡體   English   中英

如何在Android中將php echo讀入字符串?

[英]How to read the php echo into string in Android?

如何在Android中將php echo讀入字符串?

我想獲得成功或失敗的回聲響應。

如果用戶登錄頁面,如果用戶名在數據庫中不匹配,則不應允許用戶登錄並顯示一些失敗消息。

MainActivity類

public class MainActivity extends Activity implements OnClickListener {

    EditText name,number;
    Button login; 
    SetContact contact;

    Boolean isInternetPresent = false;
    ConnectionDetector cd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contact);

        cd = new ConnectionDetector(getApplicationContext());


        name = (EditText) findViewById(R.id.etname);
        number = (EditText) findViewById(R.id.etnumber);

        login = (Button) findViewById(R.id.login);
        login.setOnClickListener(this);
    }

    public static String POST(String url, SetContact contact){
        InputStream inputStream = null;
        String result = "";
        try {


            HttpClient httpclient = new DefaultHttpClient();

            HttpPost httpPost = new HttpPost(url);

            String json = "";

            JSONObject jsonObject = new JSONObject();
            jsonObject.accumulate("name", contact.getName());
            jsonObject.accumulate("number", contact.getNumber());



            json = jsonObject.toString();

            StringEntity se = new StringEntity(json);

            httpPost.setEntity(se);

            httpPost.setHeader("Accept", "application/json");
            httpPost.setHeader("Content-type", "application/json");

            HttpResponse httpResponse = httpclient.execute(httpPost);

            inputStream = httpResponse.getEntity().getContent();

            if(inputStream != null)
                result = convertInputStreamToString(inputStream);
            else
                result = "Did not work!";

        } catch (Exception e) {
            Log.d("InputStream", e.getLocalizedMessage());
        }

        return result;
    }

    public void onClick(View view) {

        String username = name.getText().toString();
        String password = number.getText().toString();
       /* if(username.equals("name") && password.equals("number")){


                Toast.makeText(getBaseContext(), "Username and password incorrect", Toast.LENGTH_LONG).show();
            } */     

    /*else {

            Toast.makeText(getBaseContext(), "Username does not exist. Please register.", Toast.LENGTH_LONG).show();
        }           */




        switch(view.getId()){
            case R.id.login:
                if(!validate()) {
                    Toast.makeText(getBaseContext(), "Please Enter Valid data!", Toast.LENGTH_LONG).show();
                } else {

                new HttpAsyncTask().execute("myurl?name="+username+"&number="+password);
                }
            break;
        }

    }
    private class HttpAsyncTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {

            contact = new SetContact();
            contact.setName(name.getText().toString());
            contact.setNumber(number.getText().toString());


            return POST(urls[0],contact);
        }


        protected void onPostExecute(String result) {

            isInternetPresent = cd.isConnectingToInternet();

            if (isInternetPresent) {
                Toast.makeText(getBaseContext(), "Thanks for the Mail, We will Reply you soon", Toast.LENGTH_LONG).show();
                name.setText("");
                number.setText("");

                Intent in = new Intent(getApplicationContext(), Updates.class);
                startActivity(in);
            } else {

                showAlertDialog(MainActivity.this, "No Internet Connection",    "Please Connect Internet.", false);
            }                   
       }
    }


    private boolean validate(){




            if(name.length() > 25){
            Toast.makeText(getApplicationContext(), "pls enter less the 25 characher in user name", Toast.LENGTH_SHORT).show();


            return true;
        }

        else if(name.length() == 0 || number.length() == 0 ){
            Toast.makeText(getApplicationContext(), "pls fill the empty fields", Toast.LENGTH_SHORT).show();
            return false;
        }

        else if(number.length() < 6 || number.length() > 13){

            number.setError("Not Valid Phone Number");
            return false;

        }
            return true;



    }
    private static String convertInputStreamToString(InputStream inputStream) throws IOException{
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
        String line = "";
        String result = "";
        while((line = bufferedReader.readLine()) != null)
            result += line;

        inputStream.close();
        return result;

    }

    @SuppressWarnings("deprecation")
    public void showAlertDialog(Context context, String title, String message, Boolean status) {
        AlertDialog alertDialog = new AlertDialog.Builder(context).create();


        alertDialog.setTitle(title);

        alertDialog.setMessage(message);

        alertDialog.setIcon((status) ? R.drawable.fail : R.drawable.fail);

        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            }
        });

        alertDialog.show();
    }

}

嘗試這個

HttpResponse response = client.execute(httpPost);

String responseBody = EntityUtils.toString(response.getEntity());

提示:我在php中使用Print而不是echo

您的問題很籠統,我的答案也將是。 您可以生成輸出PHP例如,通過echo像“登錄失敗”,並評估其對Android一面。 更好的是,您可以在登錄后( PHP端 / Android端 )使用HTTP狀態代碼來暗示成功或失敗(例如Unauthorized / 401)。

由於您沒有代碼,因此實際上是通過GET請求進行登錄的,因此您應該閱讀如何執行此操作

您應該使用JSON而不是字符串。

我使用JsonSimple庫將其解析為對象。

這是我的示例代碼:

HashMap<String, String> urlParams = new HashMap<String, String>();
    urlParams.put("KEY", Value);
    String result = "-1";
    try {
        result = rest.POST(host, "Response.php", this.header,
                urlParams, 3000);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    JSONObject json = new JSONObject();
    try {
        json = (JSONObject) new JSONParser().parse(result);
        return json.get("value_you_want").toString();
    } catch (ParseException e) {
        return ("Error parsing " + e.getMessage());

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM