ich ein Android-App tue, die E-Mail-Überprüfung erfordert, bevor further.I ein einfaches EditText Feld, wo Nutzer ihre E-Mail ein und klickt auf button.On klicken, um fortzufahren Schaltfläche ich, dass E-Mail geschickt haben, um fortzufahren zu Server.Ich wünsche im Backend die E-Mail-Benutzer sendet zuerst geprüft.Wenn die E-Mail in der Datenbank der verifizierten E-Mails verfügbar ist, dann ist der Benutzer erlaubt, mit der nächsten Aktivität fortzufahren, sonst sollte Benutzer einige Meldungen bekommen, dass ihre E-Mail nicht verifiziert ist .Für das tat ich dies in meiner android app Java-KlasseWie getback Antwort vom Server
package fragment;
import android.app.Activity;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.example.user.timothysurvey.R;
import com.example.user.timothysurvey.activity.Introduction;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import pojo.Email;
import pojo.JSONParser;
/**
* A simple {@link Fragment} subclass.
*/
public class Ongoing extends Fragment {
Button proceed;
EditText email;
TextView surveyTitle;
String success;
private static final String url="http://192.168.0.123/survey/public/api/verifyemail";
public Ongoing() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v=inflater.inflate(R.layout.fragment_ongoing, container, false);
surveyTitle= (TextView) v.findViewById(R.id.surveyTitle);
email = (EditText) v.findViewById(R.id.email);
proceed= (Button) v.findViewById(R.id.proceed);
proceed.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isConnected()) {
String emailAddress = email.getText().toString().trim();
String emailPattern = "[a-zA-Z0-9._-][email protected][a-z]+\\.+[a-z]+";
if (emailAddress.matches("")) {
Toast.makeText(getContext(), "Please fill up all the fields", Toast.LENGTH_LONG).show();
} else {
if (emailAddress.matches(emailPattern)) {
new HttpAsyncTask().execute("http://192.168.0.123/survey/public/api/verifyemail");
} else
Toast.makeText(getContext(), "Invalid Email Address", Toast.LENGTH_LONG).show();
}
}
else {
Toast.makeText(getContext(), "Please check your internet connection", Toast.LENGTH_LONG).show();
}
}
});
return v;
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("email", email.getText().toString()));
JSONParser jParser = new JSONParser();
JSONObject json = jParser.makeHttpRequest(url, "POST", params);
try {
success = json.getString("success");
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
if(success.equals("Email verified. Please proceed with survey"))
Toast.makeText(getContext(), "Wait For a moment", Toast.LENGTH_LONG).show();
}
}
public boolean isConnected(){
ConnectivityManager connMgr = (ConnectivityManager) getActivity().getSystemService(Activity.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected())
return true;
else
return false;
}
}
Und das ist mein pHP-Code für das Backend
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
// url
// :: localhost/api/verifyemail/[email protected]
// messages
// 1. No record in database
// 2. Admin has not verified your email
// 3. Email verified. Please proceed with survey
Route::get('verifyemail/{email}', function ($email) {
// first check whether user exist in database
$user = \App\SurveyUser::where('email', $email)->first();
// if user does not exist send error message
if (empty($user)) {
$user['error'] = 'No record in database';
} else {
if ($user->verified_by_admin) {
$user['success'] = 'Email verified. Please proceed with survey';
} else {
$user['error'] = 'Admin has not verified your email';
}
}
return $user;
// if exist check whether he is allowed to take survey or not
});
Route::post('verifyemail', function (Request $request) {
// check email
$email = $request->email;
$user = \App\SurveyUser::where('email', $email)->first();
if (empty($user)) {
$user['error'] = 'No record in database';
} else {
if ($user->verified_by_admin) {
$user['success'] = 'Email verified. Please proceed with survey';
} else {
$user['error'] = 'Admin has not verified your email';
}
}
return $user;
});
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:api');
Ich bin kein Ergebnis von oben code.Somebody bekommen Bitte machen Sie mir den richtigen Weg ich meine target.Thank Sie im Voraus
Bruder es müde mit Ihrem Code, Es wirft Nullzeiger Ausnahme an dieser Zeile Versuch, die virtuelle Methode 'boolean java.lang.String.equals (java.lang.Object)' auf einem Nullobjekt Referenz bei Fragment aufzurufen .Ongoing $ HttpAsyncTask.onPostExecute (Ongoing.java:114) –