-3

I have code for login activity in android studio using php sql with it this is the code :-

public class MainActivity extends ActionBarActivity { protected EditText username; private EditText password; protected String enteredUsername; private final String serverUrl = "http://192.168.0.103/androidlogin/index.php"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); username = (EditText)findViewById(R.id.username_field); password = (EditText)findViewById(R.id.password_field); Button loginButton = (Button)findViewById(R.id.login); Button registerButton = (Button)findViewById(R.id.register_button); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { enteredUsername = username.getText().toString(); String enteredPassword = password.getText().toString(); if(enteredUsername.equals("") || enteredPassword.equals("")){ Toast.makeText(MainActivity.this, "Username or password must be filled", Toast.LENGTH_LONG).show(); return; } if(enteredUsername.length() <= 1 || enteredPassword.length() <= 1){ Toast.makeText(MainActivity.this, "Username or password length must be greater than one", Toast.LENGTH_LONG).show(); return; } // request authentication with remote server4 AsyncDataClass asyncRequestObject = new AsyncDataClass(); asyncRequestObject.execute(serverUrl, enteredUsername, enteredPassword); } }); registerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, RegisterActivity.class); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } private class AsyncDataClass extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { HttpParams httpParameters = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParameters, 5000); HttpConnectionParams.setSoTimeout(httpParameters, 5000); HttpClient httpClient = new DefaultHttpClient(httpParameters); HttpPost httpPost = new HttpPost(params[0]); String jsonResult = ""; try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("username", params[1])); nameValuePairs.add(new BasicNameValuePair("password", params[2])); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpClient.execute(httpPost); jsonResult = inputStreamToString(response.getEntity().getContent()).toString(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return jsonResult; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String result) { super.onPostExecute(result); System.out.println("Resulted Value: " + result); if(result.equals("") || result == null){ Toast.makeText(MainActivity.this, "Server connection failed", Toast.LENGTH_LONG).show(); return; } int jsonResult = returnParsedJsonObject(result); if(jsonResult == 0){ Toast.makeText(MainActivity.this, "Invalid username or password", Toast.LENGTH_LONG).show(); return; } if(jsonResult == 1){ Intent intent = new Intent(MainActivity.this, LoginActivity.class); intent.putExtra("USERNAME", enteredUsername); intent.putExtra("MESSAGE", "You have been successfully login"); startActivity(intent); } } private StringBuilder inputStreamToString(InputStream is) { String rLine = ""; StringBuilder answer = new StringBuilder(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); try { while ((rLine = br.readLine()) != null) { answer.append(rLine); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return answer; } } private int returnParsedJsonObject(String result){ JSONObject resultObject = null; int returnedResult = 0; try { resultObject = new JSONObject(result); returnedResult = resultObject.getInt("success"); } catch (JSONException e) { e.printStackTrace(); } return returnedResult; } } 

with 21 sdk version it work so perfect but when i try to change the gradle file to 25 version i had many red lines under http connection code

so what's the solution how can i upgrade the sdk to 25 without get any problems ? thanks alot

0

2 Answers 2

1

HttpCLient has been removed in SDK 23. You should add Apache Http library manually:

android { useLibrary 'org.apache.http.legacy' } 
Sign up to request clarification or add additional context in comments.

1 Comment

thanks alot it works
-1

You have to replace the HttpClient with HttpURLConnection. Check this link for more info: Android Gradle Apache HttpClient does not exist?

2 Comments

Explain the downvote please...
Well i answered the question and added a link for a question which includes a solution with more info. I could just copy and paste but i hate guys who do something like that.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.