2015-09-09 22 views
5

benim getirme sınıfıAndroid giriş

public class fetchUserDataAsyncTask extends AsyncTask<Void, Void, User> { 
    User user; 
    GetUserCallback userCallBack; 

    public fetchUserDataAsyncTask(User user, GetUserCallback userCallBack) { 
     this.user = user; 
     this.userCallBack = userCallBack; 
    } 

    @Override 
    protected User doInBackground(Void... params) { 
     ArrayList<NameValuePair> dataToSend = new ArrayList<>(); 
     dataToSend.add(new BasicNameValuePair("username", user.username)); 
     dataToSend.add(new BasicNameValuePair("password", user.password)); 

     HttpParams httpRequestParams = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpRequestParams, 
       CONNECTION_TIMEOUT); 
     HttpConnectionParams.setSoTimeout(httpRequestParams, 
       CONNECTION_TIMEOUT); 

     HttpClient client = new DefaultHttpClient(httpRequestParams); 
     HttpPost post = new HttpPost(SERVER_ADDRESS 
       + "FetchUserData.php"); 

     User returnedUser = null; 

     try { 
      post.setEntity(new UrlEncodedFormEntity(dataToSend)); 
      HttpResponse httpResponse = client.execute(post); 

      HttpEntity entity = httpResponse.getEntity(); 
      String result = EntityUtils.toString(entity); 
      JSONObject jObject = new JSONObject(result); 

      if (jObject.length() != 0){ 
       Log.v("happened", "2"); 
       String name = jObject.getString("name"); 
       int age = jObject.getInt("age"); 

       returnedUser = new User(name, age, user.username, user.password); 
      } 



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

     return returnedUser; 
    } 

    @Override 
    protected void onPostExecute(User returnedUser) { 
     super.onPostExecute(returnedUser); 
     progressDialog.dismiss(); 
     userCallBack.done(returnedUser); 
    } 
} 

Php getirilirken dosyayı

<?php 

$con=mysqli_connect("localhost","root","","loginregister"); 

if (mysqli_connect_errno($con)) 
{ 
echo "Failed to connect to MySQL: " , mysqli_connect_error(); 
} 

if (isset($_POST["password"])) {$password = $_POST 

["password"];}else $password = 'bimbomix'; 
if (isset($_POST["username"])) {$username = $_POST 

["username"];}else $username = 'bimbomix'; 



$statement = mysqli_prepare($con, "SELECT * FROM user WHERE 

username = ? AND password = ?"); 
mysqli_stmt_bind_param($statement, "ss", $username, 

$password); 
mysqli_stmt_execute($statement); 
mysqli_stmt_store_result($statement); 
mysqli_stmt_bind_result($statement, $user_id, $name, $age, 

$username, $password); 

$user = array(); 

while(mysqli_stmt_fetch($statement)){ 
    $user['name'] = $name; 
    $user['age'] = $age; 
    $user['username'] = $username; 
    $user['password']= $password;  
} 

echo json_encode($user); 


mysqli_close($con); 

?> 

Fetch_User_Data.php Şöyledir hardcoding Testi

 User returnedUser=null; 
     try { 

      post.setEntity(new UrlEncodedFormEntity(dataToSend)); 

      HttpResponse httpResponse = client.execute(post); 

      HttpEntity entity = httpResponse.getEntity(); 

      String result = EntityUtils.toString(entity); 
//until here hardcoding fills correctly returnedUser 
      JSONObject jObject = new JSONObject(result); 
returnedUser = new User("hello", 42, user.username, user.password); 
// this is hardcoded string that let returnedUser ==null 
// so perhaps problem is in jObject    

if (jObject.length() != 0){ 
       Log.v("happened", "2"); 
       String name = jObject.getString("name"); 
       int age = jObject.getInt("age"); 

       // returnedUser = new User(name, age, user.username, user.password); 
      } 



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

     return returnedUser; 
    } 
+1

deneyin dönüş returnedUser eklenmesi; yakalama hattından önce. – MetaSnarf

+1

deneyin sonra başka ekleyerek senin 'if (jObject.length()! = 0) {' ve "senin' Log.v ("oldu" eğer PHP aksi geri savurma ne 2 görmek için 'result' içeriğini giriş ") gösteriliyor, daha sonra" result "içeriğini gösteren başka bir Log.v eklemeyi deneyin. Dönüş stmt Eğer stmt nereden buldun yöntemi – Ultimater

+0

Bu hata veriyor? –

cevap

0

Çok üzgünüm. Sorun bir çift hafta boyunca beni delirtmiş olsa bile basitti! ... "Fetch_User_Data.php" dosyasını getirme bak ve sonra "FetchUserData.php" olarak arayıp yapılabilir olacakları dize bakmak

İlgili konular