[英]Get JSON response from php backend in android
I am sending some data to php
server and performing some database
operations and returns a json
data to android app after insert
operations in database我正在向
php
服务器发送一些数据并执行一些database
操作,并在数据库中insert
操作后向 android 应用程序返回一个json
数据
Database process is successful but i can't get the json response in android!数据库处理成功,但我无法在 android 中获得 json 响应! I am using AsyncTask in this code below.
我在下面的代码中使用 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;
}
The getString() method throws exception if key not found.
如果未找到键,getString() 方法将引发异常。 Instead use the has() method.
而是使用 has() 方法。
Remove the log statement Log.i("json", json.getString("insert_sucss"));
删除日志语句
Log.i("json", json.getString("insert_sucss"));
or change to json.has("insert_sucss")
或更改为
json.has("insert_sucss")
Also if you're only sending 2 error codes (insert_sucss and insert_err) change the if conditions to something like this此外,如果您只发送 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();
}
otherwise cover all possibilities like this否则涵盖所有这样的可能性
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();
}
I found this problem I am calling it from a worker thread.and this is wrong我发现了这个问题,我是从工作线程调用它的。这是错误的
I fixed my code我修复了我的代码
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(G.context, "text", Toast.LENGTH_LONG).show();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.