2015-01-02 9 views
0

У меня есть база данных, которую я использую в своем приложении Android (учетные записи). Я хочу, чтобы пользователь мог изменить свой пароль.
Я использую java, mySQL, PHP и JSON.
Имя пользователя должно быть обновлено по их идентификатору, я просто создал код для этого, но я получаю сообщение об ошибке ...: «Ошибка анализа данных org.json.JSONException: Value < br> < таблица типа java.lang .String нельзя преобразовать в JSONObject ".java.lang.String не может быть преобразован в JSONObject

Вот несколько строк кода, я использую:

PHP

$query = "UPDATE users SET username = :username WHERE id = :id"; 
$stmt = $db->prepare($query); 
$result = $stmt->execute($query_params); 

мне нужно проверить, если имя пользователя будет успешно обновлен, но я сделаю это позже.
я просто использую:

$response["success"] = 1; 
$response["message"] = "Username is succesfully changed!"; 
die(json_encode($response)); 

JAVA

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 
id = sp.getInt("id", 1); 
EditText newUsername = (EditText)findViewById(R.id.etNewUsername); 
username = newUsername.getText().toString(); 

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("id", Integer.toString(id))); 
params.add(new BasicNameValuePair("username", username)); 
Log.d("request!", "starting"); 
JSONObject json = jsonParser.makeHttpRequest(url, "POST", params); 
Log.d("After updating username", json.toString()); 

Но Тэг: "После обновления имя пользователя" не появляется после ошибки в LogCat.
Итак, я знаю, что ошибка находится в пределах HttpRequest.
Возможно, это идентификатор? Потому что он будет преобразован в String, а в базе данных id является целым числом?

Любая помощь будет оценена!
Спасибо.

+0

Вы используете код «JSONParser», скопированный здесь: http://techlovejump.com/android-json-parser-from-url/ ??? Если это так, остерегайтесь того, что код содержит множество ошибок, и один из них заключается в том, что он не удастся, если сервер отправит вам ответ об ошибке (или любой ответ) с телом HTML. –

+0

Да, я использую этот JSONParser, но я не использую HTML ... – Joeri

+0

@Joen - * «Я не использую HTML» *. Дело не в этом. Сервер, с которым вы разговариваете, отправляет вам HTML << ... и что код JSONParser, который вы скопировали, слишком хромает, чтобы справиться с ним. (Он не проверяет код ответа. Он не проверяет тип содержимого ответа, он имеет другие недостатки. Ищите что-то лучшее для копирования. Или «поднимитесь» и напишите свою собственную версию. (Возможно, я должен сказать «кодер» up ":-).)) –

ответ

0
Error parsing data org.json.JSONException: Value < br>< table of type java.lang.String cannot be converted to JSONObject 

Обратите внимание на значение -"<br> <table". Вы пытаетесь рассматривать HTML как JSON. Это не работает, поэтому JSONParser выбрасывает исключение. Вы не поймаете исключения, поэтому вы рухнете.

+0

Но я не использую HTML ... – Joeri

+0

Должен ли я предоставить вам весь мой код? – Joeri

+0

Вы где-то. Его разбор значений html. Это может быть страница с ошибкой, например, 404. –

Смежные вопросы