2 Stimmen

Android: Klicken Sie auf die Schaltfläche in der Website.

Ich habe ein Problem, ich habe eine Anwendung auf einem Android-Gerät und eine Website, auf der die POST-Überprüfung beim Klicken auf die Schaltfläche verarbeitet wird. Wenn ich also eine POST-Anfrage an diese Site sende, mit den richtigen Daten, kann ich sie nicht klickbar machen, indem ich diese POST-Überprüfung auf der Serverseite umgehe. Was muss ich mit meiner App oder dem Serverseitigen Code tun?

Hier ist mein Code, wo ich den POST sende:

/****** SEND POST REQUEST ******/
private void sendPostRequest_cabinet(String clientID) 
{
    class SendPostReqAsyncTask extends AsyncTask 
    {

        @Override
        protected String doInBackground(String... params) 
        {

            // Daten in Array einfügen
            String paramClientID = params[0];

            HttpClient httpClient = new DefaultHttpClient();
            //httpPost = new HttpPost(post_url + /*Sprache aus Dropdown + */ "/de/login/");

            if (LANGUAGE != null)
            {           
                if (LANGUAGE.equals("Englisch"))
                {
                    httpPost = new HttpPost(link.getEng());
                    Toast.makeText(getApplicationContext(), (CharSequence) httpPost, Toast.LENGTH_LONG).show();
                }
                else if (LANGUAGE.equals("Russisch"))
                {
                    httpPost = new HttpPost(link.getRussian());
                }
                else if (LANGUAGE.equals("Holländisch(Deutsch)"))
                {
                    httpPost = new HttpPost(link.getDeutch());
                }
                else if (LANGUAGE.equals("Französisch"))
                {
                    httpPost = new HttpPost(link.getFrance());
                }
                else if (LANGUAGE.equals("Italienisch"))
                {
                    httpPost = new HttpPost(link.getItalian());
                }
                else if (LANGUAGE.equals("Spanisch"))
                {
                    httpPost = new HttpPost(link.getSpanish());
                }
            }

            // Parameter mit Werten senden
            BasicNameValuePair email1BasicNameValuePair = new BasicNameValuePair("client_id", paramClientID);

            // Parameter in Array einfügen
            List nameValuePairList = new ArrayList();
            nameValuePairList.add(email1BasicNameValuePair);

            try 
            {
                UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(nameValuePairList);
                httpPost.setEntity(urlEncodedFormEntity);

                try 
                {
                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    InputStream inputStream = httpResponse.getEntity().getContent();
                    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                    BufferedReader buffereReader = new BufferedReader(inputStreamReader);
                    StringBuilder stringBuilder = new StringBuilder();

                    String bufferedStrChunk = null;

                    while ((bufferedStrChunk = buffereReader.readLine()) != null) 
                    {
                        stringBuilder.append(bufferedStrChunk);
                    }

                    return stringBuilder.toString();
                }
                catch (ClientProtocolException cpe) 
                {
                    System.out.println("Erste Ausnahme von HttpResponse: " + cpe);
                    cpe.printStackTrace();
                } 
                catch (IOException ioe) 
                {
                    System.out.println("Zweite Ausnahme von HttpResponse: " + ioe);
                    ioe.printStackTrace();
                }
            } 
            catch (UnsupportedEncodingException uee) 
            {
                System.out.println("Eine Ausnahme aufgrund des UrlEncodedFormEntity-Arguments: " + uee);
                uee.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String result)
        {
            // Toast.makeText(getApplicationContext(),
            // "POST-Anforderung wurde erfolgreich gesendet",
            // Toast.LENGTH_LONG).show();

            super.onPostExecute(result);

            //Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();

            //Gehe zum Browser mit Sprachweiterleitung              
            if (LANGUAGE != null)
            {           
                if (LANGUAGE.equals("Englisch"))
                {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(link.getEng()));
                    startActivity(i);
                }
                else if (LANGUAGE.equals("Russisch"))
                {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(link.getRussian()));
                    startActivity(i);
                }
                else if (LANGUAGE.equals("Holländisch(Deutsch)"))
                {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(link.getDeutch()));
                    startActivity(i);
                }
                else if (LANGUAGE.equals("Französisch"))
                {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(link.getFrance()));
                    startActivity(i);
                }
                else if (LANGUAGE.equals("Italienisch"))
                {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(link.getItalian()));
                    startActivity(i);
                }
                else if (LANGUAGE.equals("Spanisch"))
                {
                    Intent i = new Intent(Intent.ACTION_VIEW);
                    i.setData(Uri.parse(link.getSpanish()));
                    startActivity(i);
                }
            }
        }
    }
    /***** Zweite Überprüfung der Internetverbindung *****/
    if (!isOnline()) 
    {
        showNoConnectionDialog(this);
        // Toast.makeText(getApplicationContext(),
        // "Internetverbindung ist deaktiviert!", Toast.LENGTH_LONG).show();
    } 
    else 
    {
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(clientID);
    }
}

UPD Hier ist, wie ich Daten sende und Daten von der vorherigen Aktivität abrufe:

// Gehe zur dritten Seite
Intent intent = new Intent(SecondScreen.this, ThirdScreen.class);
intent.putExtra("CLIENT_ID", stringClientID);
intent.putExtra("PASSWORD", getUserPWD);
intent.putExtra("LANGUAGE", language);
startActivity(intent);
finish();

Intent intent = getIntent();
CLIENT_ID = intent.getExtras().getString("CLIENT_ID");

UPD2 Vielleicht habe ich nicht klar erklärt, was ich brauche, also werde ich es versuchen zu erklären... Ich habe eine Website, an die ich Daten über POST senden muss, was bedeutet das? Ich starte meine Android-App, fülle einige Textfelder mit Daten aus und klicke auf die Schaltfläche. Beim Klicken auf diese Schaltfläche muss ich den Webbrowser öffnen und Daten an diese Site senden...

0voto

vladimir Punkte 695

Ich habe mein Problem gelöst, indem ich eine neue Aktivität mit dem WebView-Komponente erstellt habe, und dort die benötigte Website abgerufen habe, damit die Moderatoren diese Frage schließen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X