2012-07-31 3 views
3

Besoin d'aide sur Android. Été ayant cette erreur Error Parsing data org.json.JSONException: Value <html> of type java.lang.String cannot be converted to JSONObjectErreur lors de la conversion de la chaîne en JSON

Ci-dessous la page qui me donne l'erreur quand je l'exécute.

public class Login extends Activity { 

//URL to get User Data 
private static String URL_GET = "http://10.0.2.2/android_connect/get_authentication.php"; 

// JSON Node names 
private static final String TAG_SUCCESS = "success"; 
private static final String TAG_USERS = "Users"; 
private static final String TAG_EMAIL = "Email"; 
private static final String TAG_PASSWORD = "Password"; 

JSONParser jParser = new JSONParser(); 
String dbPassword = null; 
// users JSONArray 
JSONArray Users = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setting default screen to login.xml 
    setContentView(R.layout.login); 

    Button btn = (Button) findViewById(R.id.btnLogin); 


    // Listening to register new account link 
    btn.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      String password = ((EditText) findViewById(R.id.password)).getText().toString(); 
      new getAuthentication().execute(); 

      if (password.equals(dbPassword)) { 
       // Switching to Main screen 
       Intent i = new Intent(getApplicationContext(), EchoSphere.class); 
       startActivity(i); 
      } 
     } 
    }); 
} 
class getAuthentication extends AsyncTask<String, String, String>{ 

    @Override 
    protected String doInBackground(String... params) { 

     runOnUiThread(new Runnable() { 
      public void run() { 
       // Check for success tag 
       int success; 

       try { 
        String email = ((EditText) findViewById(R.id.email)).getText().toString(); 

        Log.d("email:", email); 

        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
        params.add(new BasicNameValuePair(TAG_EMAIL, email)); 

        JSONObject json = jParser.makeHttpRequest(URL_GET, "GET", params); 
        Log.d("Password:", json.toString()); 

        success = json.getInt(TAG_SUCCESS);  

        if (success == 1) { 
         Users = json.getJSONArray(TAG_USERS); 
         JSONObject c = Users.getJSONObject(0); 
         dbPassword = c.getString(TAG_PASSWORD); 
         Log.d("DBPW:", dbPassword); 
        } 

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

        } 

       }); 
     return null; 
    } 

} 
} 

Ceci est le script PHP, j'ai validé le PHP et il se révèle fonctionner.

<?php 
// array for JSON response 
$response = array(); 

// include db connect class 
require_once __DIR__ . '/db_connect.php'; 

// connecting to db 
$db = new DB_CONNECT(); 

// check for post data 
if (isset($_GET["Email"])) { 
$email = $_GET['Email']; 

// get a product from products table 
$result = mysql_query("SELECT Email, Password FROM Users WHERE Email = '$email'"); 

if (!empty($result)) { 
    // check for empty result 
    if (mysql_num_rows($result) > 0) { 

     $result = mysql_fetch_array($result); 

     $user[] = array(); 
     $user["Email"] = $result["Email"]; 
     $user["Password"] = $result["Password"]; 

     // user node 
     $response["Users"] = array(); 

     array_push($response["Users"], $user); 

     // success 
     $response["success"] = 1; 

     // echoing JSON response 
     echo json_encode($response); 
    } else { 
     // no product found 
     $response["success"] = 0; 
     $response["message"] = "No User found"; 

     // echo no users JSON 
     echo json_encode($response); 
    } 
} else { 
    // no product found 
    $response["success"] = 0; 
    $response["message"] = "No User found"; 

    // echo no users JSON 
    echo json_encode($response); 
} 
} else { 

// required field is missing 

$response["success"] = 0; 
$response["message"] = "Required field(s) is missing"; 

// echoing JSON response 
echo json_encode($response); 
} 
?> 

Les résultats sont présentés comme

{"Users":[{"0":[],"Email":"1","Password":"123"}],"success":1} 

Je ne sais pas où l'erreur se trouve à.

+0

Si vous visualisez la source/imprimez le résultat de http://10.0.2.2/android_connect/get_authentication.php, y a-t-il autre chose que le JSON? – henrikpersson

+0

rien d'autre n'apparaît à part le JSON juste le résultat –

+2

la réponse du serveur est une page d'erreur html je pense, c'est pourquoi vous obtenez json parse erreur –

Répondre

0

J'ai résolu l'erreur.

Merci à tous pour votre aide.

I ajouté

header('Content-type: application/json'); 

au script php et l'application peut fonctionner.

Questions connexes