Я зарегистрировался и использую Async taks
для отправки сведений о пользователе на сервер. Я хочу получить ответ от сервера, если регистрация прошла успешно или нет.
Вот код для моего async task
class backgroundTask_register_activity extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
String url = "http://13.232.207.9/php/register.php";
final List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("user_id",user_id));
parameters.add(new BasicNameValuePair("user_fullname",reg_user_fullname.getText().toString()));
parameters.add(new BasicNameValuePair("user_name",reg_user_name.getText().toString()));
parameters.add(new BasicNameValuePair("user_email",reg_user_email.getText().toString()));
parameters.add(new BasicNameValuePair("user_mobile",reg_user_mobile.getText().toString()));
parameters.add(new BasicNameValuePair("user_city",reg_user_city.getText().toString()));
parameters.add(new BasicNameValuePair("user_password",reg_user_password.getText().toString()));
parameters.add(new BasicNameValuePair("user_dob",DOB_textView.getText().toString()));
parameters.add(new BasicNameValuePair("user_gender",reg_user_gender));
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
try {
httppost.setEntity(new UrlEncodedFormEntity(parameters));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
if(entity != null){
Toast toast = Toast.makeText(getApplicationContext(),EntityUtils.toString(entity),Toast.LENGTH_SHORT);
toast.show();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Ответ от php: {"success":1,"Message":"User added successfully"}
Так что я хочу отобразить тост-уведомление для того же. Какие изменения я должен сделать, чтобы получить ответ?
Но мой код принудительно закрывает приложение:
он в журнале ошибок:
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.prasaurus.app.psa_b2c_app, PID: 10201
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:200)
at android.os.Handler.<init>(Handler.java:114)
at android.widget.Toast$TN.<init>(Toast.java:356)
at android.widget.Toast.<init>(Toast.java:101)
at android.widget.Toast.makeText(Toast.java:266)
at com.prasaurus.app.psa_b2c_app.RegisterActivity$backgroundTask_register_activity.doInBackground(RegisterActivity.java:145)
at com.prasaurus.app.psa_b2c_app.RegisterActivity$backgroundTask_register_activity.doInBackground(RegisterActivity.java:119)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)