получить ответ JSON от PHP-серверной части в Android

Я отправляю некоторые данные php сервер и выполняя некоторые database операции и возвращает json данные в приложение для Android после insert операции в базе данных

Процесс базы данных успешен, но я не могу получить ответ JSON в Android!
Я использую AsyncTask в этом коде ниже.

try {
//connect to php and send data code...

HttpResponse response = httpclient.execute(httppost);
InputStream inputStream = response.getEntity().getContent();
String result = convertInputStreamToString(inputStream);

if (result != null) {
try {

JSONObject json = new JSONObject(result);
Log.i("json", json.getString("insert_sucss"));
if (json.has("insert_err")) {
Toast.makeText(RegisterActivity.this, json.getString("insert_err"), Toast.LENGTH_LONG).show();
}
if (json.has("insert_sucss")) {
Toast.makeText(RegisterActivity.this, json.getString("insert_sucss"), Toast.LENGTH_LONG).show();
}
}
catch (JSONException e)
{
e.printStackTrace();
}

}
}
catch (Exception e)
{
Log.e("log_tag", "Error:  " + e.toString());
}
return null;
}


private String convertInputStreamToString(InputStream inputStream) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();

String line = "";

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

return builder.toString();
}
catch (IOException e) {
e.printStackTrace();
}

return null;
}

-2

Решение

Метод getString () выдает исключение, если ключ не найден. Вместо этого используйте метод has ().

Удалить запись журнала Log.i("json", json.getString("insert_sucss")); или изменить на json.has("insert_sucss")

Также, если вы отправляете только 2 кода ошибки (insert_sucss и insert_err), измените условия if на что-то подобное

if (json.has("insert_err"))
{
Toast.makeText(RegisterActivity.this, json.getString("insert_err"), Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(RegisterActivity.this, json.getString("insert_sucss"), Toast.LENGTH_LONG).show();
}

в противном случае покрыть все возможности, как это

if (json.has("insert_err"))
{
Toast.makeText(RegisterActivity.this, json.getString("insert_err"), Toast.LENGTH_LONG).show();
}
else if(json.has("insert_sucss"))
{
Toast.makeText(RegisterActivity.this, json.getString("insert_sucss"), Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(RegisterActivity.this, "Unexpected Error", Toast.LENGTH_LONG).show();
}
0

Другие решения

Я нашел эту проблему
Я звоню из рабочего потока. И это неправильно

Я исправил свой код

 runOnUiThread(new Runnable() {

public void run() {
Toast.makeText(G.context, "text", Toast.LENGTH_LONG).show();
}
});
0

По вопросам рекламы [email protected]