2015-10-10 13 views
8

Oturum açma kimlik bilgilerini kontrol etmeye çalışıyorum, Ama bu hataları bir kez daha alıyorum, her şeyi denedim. Ben android için yeni Her türlü yardım takdir edilecektir. Aynı uygulamak için diğer iyi yolu varsa,package org.apache.http.client yok

Hata

Error:(19, 30) error: package org.apache.http.client does not exist 
Error:(15, 23) error: package org.apache.http does not exist 
Error:(16, 23) error: package org.apache.http does not exist 
Error:(17, 23) error: package org.apache.http does not exist 
Error:(18, 30) error: package org.apache.http.client does not exist 
Error:(20, 37) error: package org.apache.http.client.entity does not exist 
Error:(21, 38) error: package org.apache.http.client.methods does not exist 
Error:(22, 35) error: package org.apache.http.impl.client does not exist 
Error:(23, 31) error: package org.apache.http.message does not exist 
Error:(79, 22) error: cannot find symbol class NameValuePair 
Error:(85, 49) error: cannot find symbol class DefaultHttpClient 
Error:(86, 21) error: cannot find symbol class HttpPost 
Error:(86, 45) error: cannot find symbol class HttpPost 
Error:(88, 44) error: cannot find symbol class UrlEncodedFormEntity 
Error:(90, 21) error: cannot find symbol class HttpResponse 
Error:(92, 21) error: cannot find symbol class HttpEntity 
Error:(105, 26) error: cannot find symbol class ClientProtocolException 
Error:Execution failed for task ':app:compileDebugJavaWithJavac'. 
> Compilation failed; see the compiler error output for details. 
Error:(85, 21) error: cannot find symbol class HttpClient 
Error:(81, 40) error: cannot find symbol class BasicNameValuePair 
Error:(80, 40) error: cannot find symbol class BasicNameValuePair 
Error:(79, 68) error: cannot find symbol class NameValuePair  

MainActivity.java

package com.tarun.proxy_maar; 

import android.app.Dialog; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Toast; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.util.ArrayList; 
import java.util.List; 


public class MainActivity extends AppCompatActivity { 

    private EditText editTextUserName; 
    private EditText editTextPassword; 

    public static final String USER_NAME = "USERNAME"; 

    String username; 
    String password; 

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

     editTextUserName = (EditText) findViewById(R.id.editTextUserName); 
     editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
    } 

    public void invokeLogin(View view){ 
     username = editTextUserName.getText().toString(); 
     password = editTextPassword.getText().toString(); 

     login(username,password); 

    } 

    private void login(final String username, String password) { 

     class LoginAsync extends AsyncTask<String, Void, String>{ 

      private Dialog loadingDialog; 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loadingDialog = ProgressDialog.show(MainActivity.this, "Please wait", "Loading..."); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       String uname = params[0]; 
       String pass = params[1]; 

       InputStream is = null; 
       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
       nameValuePairs.add(new BasicNameValuePair("username", uname)); 
       nameValuePairs.add(new BasicNameValuePair("password", pass)); 
       String result = null; 

       try{ 
        HttpClient httpClient = new DefaultHttpClient(); 
        HttpPost httpPost = new HttpPost(
          "http://shaadi.web44.net/hello.php"); 
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

        HttpResponse response = httpClient.execute(httpPost); 

        HttpEntity entity = response.getEntity(); 

        is = entity.getContent(); 

        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8); 
        StringBuilder sb = new StringBuilder(); 

        String line = null; 
        while ((line = reader.readLine()) != null) 
        { 
         sb.append(line + "\n"); 
        } 
        result = sb.toString(); 
       } catch (ClientProtocolException e) { 
        e.printStackTrace(); 
       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return result; 
      } 

      @Override 
      protected void onPostExecute(String result){ 
       String s = result.trim(); 
       loadingDialog.dismiss(); 
       if(s.equalsIgnoreCase("success")){ 
        Intent intent = new Intent(MainActivity.this, UserProfile.class); 
        intent.putExtra(USER_NAME, username); 
        finish(); 
        startActivity(intent); 
       }else { 
        Toast.makeText(getApplicationContext(), "Invalid User Name or Password", Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 

     LoginAsync la = new LoginAsync(); 
     la.execute(username, password); 

    } 


    @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); 
    } 
} 

cevap

35

sizin build.gradle da eklerseniz ima nasıl bilmek istiyorum:

android { 
    useLibrary 'org.apache.http.legacy' 
} 

Veya bunun yerine HttpURLConnection class kullanın.

+0

İşte API düzeyinde 23 üzerinde çalışacak senin AsyncTask değiştirilmiş versiyonu. – MrIndomitable

5

DefaultHttpClient ve NameValuePair sınıfları API düzeyinde 22 kullanımdan kaldırılmış ve Google bile onlar için belgeleri indirdi 23.

API düzeyinde çıkarıldı.

Dokümantasyon hala devam ettiğinde, bunun gibi temel görevler için HttpUrlConnection'a geçmeniz önerilir.

class LoginAsync extends AsyncTask<String, Void, String>{ 

     private Dialog loadingDialog; 
     String url = "http://shaadi.web44.net/hello.php"; 

     String charset = "UTF-8"; 
     HttpURLConnection conn; 
     DataOutputStream wr; 
     StringBuilder result = new StringBuilder(); 
     URL urlObj; 
     JSONObject jObj = null; 
     StringBuilder sbParams; 
     String paramsString; 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      loadingDialog = ProgressDialog.show(MainActivity.this, "Please wait", "Loading..."); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      String uname = params[0]; 
      String pass = params[1]; 

      sbParams = new StringBuilder(); 

      try { 
       sbParams.append("name").append("=") 
         .append(URLEncoder.encode(uname, charset)); 
       sbParams.append("&"); 
       sbParams.append("password").append("=") 
         .append(URLEncoder.encode(pass, charset)); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 

      try { 
       urlObj = new URL(url); 

       conn = (HttpURLConnection) urlObj.openConnection(); 

       conn.setDoOutput(true); 

       conn.setRequestMethod("POST"); 

       conn.setRequestProperty("Accept-Charset", charset); 

       conn.setReadTimeout(10000); 
       conn.setConnectTimeout(15000); 

       conn.connect(); 

       paramsString = sbParams.toString(); 

       wr = new DataOutputStream(conn.getOutputStream()); 
       wr.writeBytes(paramsString); 
       wr.flush(); 
       wr.close(); 

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

      try { 
       //response from the server 
       InputStream in = new BufferedInputStream(conn.getInputStream()); 
       BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 

       String line; 
       while ((line = reader.readLine()) != null) { 
        result.append(line); 
       } 


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

      conn.disconnect(); 

      return result.toString(); 
     } 

     @Override 
     protected void onPostExecute(String result){ 
      String s = result.trim(); 
      loadingDialog.dismiss(); 
      if(s.equalsIgnoreCase("success")){ 
       Intent intent = new Intent(MainActivity.this, UserProfile.class); 
       intent.putExtra(USER_NAME, username); 
       finish(); 
       startActivity(intent); 
      }else { 
       Toast.makeText(getApplicationContext(), "Invalid User Name or Password", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

Tam sınıf kodunu: Benim için çalışmıyor

import android.app.Dialog; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Toast; 
import org.json.JSONObject; 
import java.io.BufferedInputStream; 
import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLEncoder; 

public class MainActivity extends AppCompatActivity { 

    private EditText editTextUserName; 
    private EditText editTextPassword; 

    public static final String USER_NAME = "USERNAME"; 

    String username; 
    String password; 

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

     editTextUserName = (EditText) findViewById(R.id.editTextUserName); 
     editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
    } 

    public void invokeLogin(View view){ 
     username = editTextUserName.getText().toString(); 
     password = editTextPassword.getText().toString(); 

     login(username,password); 

    } 

    private void login(final String username, String password) { 

     class LoginAsync extends AsyncTask<String, Void, String>{ 

      private Dialog loadingDialog; 
      String url = "http://shaadi.web44.net/hello.php"; 

      String charset = "UTF-8"; 
      HttpURLConnection conn; 
      DataOutputStream wr; 
      StringBuilder result = new StringBuilder(); 
      URL urlObj; 
      JSONObject jObj = null; 
      StringBuilder sbParams; 
      String paramsString; 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loadingDialog = ProgressDialog.show(MainActivity.this, "Please wait", "Loading..."); 
      } 

      @Override 
      protected String doInBackground(String... params) { 
       String uname = params[0]; 
       String pass = params[1]; 

       sbParams = new StringBuilder(); 

       try { 
        sbParams.append("name").append("=") 
          .append(URLEncoder.encode(uname, charset)); 
        sbParams.append("&"); 
        sbParams.append("password").append("=") 
          .append(URLEncoder.encode(pass, charset)); 
       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } 

       try { 
        urlObj = new URL(url); 

        conn = (HttpURLConnection) urlObj.openConnection(); 

        conn.setDoOutput(true); 

        conn.setRequestMethod("POST"); 

        conn.setRequestProperty("Accept-Charset", charset); 

        conn.setReadTimeout(10000); 
        conn.setConnectTimeout(15000); 

        conn.connect(); 

        paramsString = sbParams.toString(); 

        wr = new DataOutputStream(conn.getOutputStream()); 
        wr.writeBytes(paramsString); 
        wr.flush(); 
        wr.close(); 

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

       try { 
        //response from the server 
        InputStream in = new BufferedInputStream(conn.getInputStream()); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 

        String line; 
        while ((line = reader.readLine()) != null) { 
         result.append(line); 
        } 


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

       conn.disconnect(); 

       return result.toString(); 
      } 

      @Override 
      protected void onPostExecute(String result){ 
       String s = result.trim(); 
       loadingDialog.dismiss(); 
       if(s.equalsIgnoreCase("success")){ 
        Intent intent = new Intent(MainActivity.this, UserProfile.class); 
        intent.putExtra(USER_NAME, username); 
        finish(); 
        startActivity(intent); 
       }else { 
        Toast.makeText(getApplicationContext(), "Invalid User Name or Password", Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 

     LoginAsync la = new LoginAsync(); 
     la.execute(username, password); 

    } 


    @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); 
    } 
} 
İlgili konular