Click here to Skip to main content
15,887,683 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more: , +
Hi,

I developed a code to post username and password to a web server and get login, after that will read different page with same domain.
i have enabled CookieManager but i dont know how to change the url.

Java
package com.example.sadeq.webloginprototypev4o;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Scanner;

import javax.net.ssl.HttpsURLConnection;

public class login extends AppCompatActivity {


    private EditText usrname;
    private EditText password;
    private TextView message;
    private Button login;
    String sUsrname, sPassword;
    String text = "";
    int code;
    int lines = 0;


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

        usrname = (EditText) findViewById(R.id.editText);
        password = (EditText) findViewById(R.id.editText2);
        message = (TextView) findViewById(R.id.textView4);
        login = (Button) findViewById(R.id.button);

        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                sUsrname = usrname.getText().toString();
                sPassword = password.getText().toString();
                System.out.println("userName: " + sUsrname + " Password: " + sPassword);

                new JSONTask().execute("https://lms.arabou.edu.kw/bahrain_hq/login/index.php");
                //message.setText(myName(text));
            }
        });

    }
    private String myName(String t){

        String Name = "";
        Scanner sc = new Scanner(t);
        String temp = "https://lms.arabou.edu.kw/bahrain_hq/user/profile.php?id=";
        while(sc.hasNext()){
            if(sc.next().equals("content=\"moodle,")) {
                Name = sc.next() + sc.next();
                break;
            }
        }
        return Name;

    }

    public class JSONTask extends AsyncTask<String, String, String> {
        @Override
        protected String doInBackground(String... params) {
            HttpsURLConnection con = null;


            try{
                String data  = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(sUsrname, "UTF-8");
                data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(sPassword, "UTF-8");
                CookieManager cookieManager = new CookieManager();
                CookieHandler.setDefault(cookieManager);
                URL url = new URL(params[0]);
                con = (HttpsURLConnection) url.openConnection();

                con.setDoOutput(true);


                OutputStreamWriter bw = new OutputStreamWriter(con.getOutputStream());



                bw.write(data);
                bw.flush();

                InputStream stream = con.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

                StringBuilder sb = new StringBuilder();
                String line = "";
                while((line = reader.readLine())!= null){
                    sb.append(line+"\n");
                    lines++;
                }
                return sb.toString();

            }catch (Exception e){
                return new String("Exception: " + e.getMessage());
            }
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            System.out.println(result);
            text = result;
            Toast.makeText(getApplicationContext(), "Number of lines: " + lines, Toast.LENGTH_LONG).show();
        }


    }//END JCLASS

}


What I have tried:

I have tried to new url and create new connection but will not read the data as I am login
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900