0

I can successfully posting user data into the server, but I'm struggling in getting response(user registered) from the server. Please look into my code and tell me, how to get Json Response(user registered). I have tried with the Asynctask with both boolean and String type to get the Response. But in this I kept that String null. Please tell me what to do for getting the Json Response. Thanks in advance!!!

public class SignupActivity extends AppCompatActivity {
 EditText firstName, lastName, emailTxt, passwordTxt;
 TextView moveToLoginTxt;
 Button signUpBtn;
 public static String strFirstname;
 public static String strLastName;
 public static String strEmail;
 public static String strPwd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signup);
    Toolbar mToolbar = (Toolbar) findViewById(R.id.signuptoolbar);

    mToolbar.setTitle("SignUp");

    firstName = (EditText) findViewById(R.id.first_name_edittext);
    lastName = (EditText) findViewById(R.id.last_name_edittext);
    emailTxt = (EditText) findViewById(R.id.email_edittext);
    passwordTxt = (EditText) findViewById(R.id.password_edittext);
    moveToLoginTxt = (TextView) findViewById(R.id.login_textview);
    signUpBtn = (Button) findViewById(R.id.btn_signup);
    signUpBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            strFirstname = firstName.getText().toString();
            strLastName = lastName.getText().toString();
            strEmail = emailTxt.getText().toString();
            strPwd = passwordTxt.getText().toString();


            if (TextUtils.isEmpty(strFirstname)) {
                firstName.setError("Please enter username");
                firstName.requestFocus();
                return;
            }

            if (TextUtils.isEmpty(strLastName)) {
                lastName.setError("Please enter your lastname");
                lastName.requestFocus();
                return;
            }

            if (TextUtils.isEmpty(strEmail)) {
                emailTxt.setError("Please enter your email");
                emailTxt.requestFocus();
                return;
            }

            if (TextUtils.isEmpty(strPwd)) {
                passwordTxt.setError("Please enter your password");
                passwordTxt.requestFocus();
                return;
            }
            Registruser registruser = new Registruser();
            registruser.execute();

            Toast.makeText(SignupActivity.this, registruser.response + "Registration Successful", Toast.LENGTH_SHORT).show();
        }
    });


}

public interface MyInterface {
    public void myMethod(boolean result);

    void onPostExecute(Boolean result);
}

public class Registruser extends AsyncTask<Void, Void, String> implements MyInterface {

    private MyInterface mListener;

    String data;
    public String response = null;

    @Override
    protected String doInBackground(Void... voids) {

        try {
            URL url = new URL("my url");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");

            connection.connect();


            connection.disconnect();


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();

        }
        return response;

    }

    @Override
    public void myMethod(boolean result) {
        if (result == true) {
            Toast.makeText(SignupActivity.this, "Connection Succesful",
                    Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(SignupActivity.this, "Connection Failed:" + result, Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void onPostExecute(Boolean result) {
        if (mListener != null)
            mListener.myMethod(result);
    }
}

}

Manjunath
  • 52
  • 1
  • 10
  • 1
    Possible duplicate of [Http Get using Android HttpURLConnection](https://stackoverflow.com/questions/8654876/http-get-using-android-httpurlconnection) – karan Feb 01 '19 at 10:29
  • @KaranMer thanks bro for your reply.. here I need a response on Postin data into the server.. can you suggest me a better solution – Manjunath Feb 01 '19 at 10:41
  • getting the response will remain same, You can read data from inputstream connected with urlconnection – karan Feb 01 '19 at 10:45
  • basically use the code after this line in accepted answer `urlConnection = (HttpURLConnection) url .openConnection(); ` – karan Feb 01 '19 at 10:46

1 Answers1

1

You have to create an InputStreamReader that reads your request input. Next, create a BufferedReader that will allow to iterate through the response. Then iterate through each line of our response and append it to your StringBuilder.

@Override 
protected String doInBackground(Void... params){
  String result;
  String inputLine;
  try {
     //Create a URL object holding url
     URL myUrl = new URL("your url");
     //Create a connection
     HttpURLConnection connection =(HttpURLConnection)     
            myUrl.openConnection();
     //Set methods and timeouts
     connection.setRequestMethod(REQUEST_METHOD);
     connection.setReadTimeout(READ_TIMEOUT);
     connection.setConnectTimeout(CONNECTION_TIMEOUT);

     //Connect to url
     connection.connect()
     //Create a new InputStreamReader
     InputStreamReader streamReader = new 
         InputStreamReader(connection.getInputStream());
     //Create a new buffered reader and String Builder
     BufferedReader reader = new BufferedReader(streamReader);
     StringBuilder stringBuilder = new StringBuilder();

     while((inputLine = reader.readLine()) != null){
        stringBuilder.append(inputLine);
     }
     //Close InputStream and Buffered reader
     reader.close();
     streamReader.close();
     //Set result equal to stringBuilder
     result = stringBuilder.toString();
  }
  return result;   
  }
pecific_rim
  • 105
  • 1
  • 10