山东大学项目实训
点击登录代码块:
public void LoginPost(View view){
if(usernameEditText.getText()==null || "".contentEquals(usernameEditText.getText())){
Toast.makeText(LoginActivity.this,"账号为空!",Toast.LENGTH_SHORT).show();
}else if(passwordEditText.getText()==null || "".contentEquals(passwordEditText.getText())){
Toast.makeText(LoginActivity.this,"密码为空!",Toast.LENGTH_SHORT).show();
}
String username = usernameEditText.getText().toString().trim();
String password = passwordEditText.getText().toString().trim();
User user = new User(username,password);
OkHttpClient client = new OkHttpClient();
Gson gson = new Gson();
String user1 = gson.toJson(user);
final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON,user1);
String url = "http://43.138.24.19/user/login";
final Request request =
new Request.Builder()
//.header("content-type","application/json")
.url(url).post(body).build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
//Toast.makeText(getApplicationContext(),"登录失败",Toast.LENGTH_SHORT).show();
Log.v("loginActivity", "");
System.out.println(e);
}
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
final String msg = response.body().string();
Gson gson = new Gson();
ResponseData data = gson.fromJson(msg, ResponseData.class);
//data3 = gson.fromJson(data2,tokenInfo.class);
if (data.getData() != null){
String token = data.getData().getToken();
String refresh_token = data.getData().getRefreshToken();
Log.i("token", token);
if (response.isSuccessful()) {
editor.putString("token", token);
editor.putString("refresh_token", refresh_token);
editor.apply();
// Toast.makeText(getApplicationContext(),"msg",Toast.LENGTH_SHORT).show();
Log.v("loginActivity", msg);
String name2 = sharedPreferences.getString("token", "");
Log.i("token", "token=" + name2);
Intent intent = new Intent(LoginActivity.this, SlideActivity.class);
startActivity(intent);
}
}else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),"登录失败",Toast.LENGTH_SHORT).show();
}
});
}
}
});
接收双token类
public class ResponseData <T>{
public int code;
public String message;
public tokenInfo data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public tokenInfo getData() {
return data;
}
public void setData(tokenInfo data) {
this.data = data;
}
}
public class tokenInfo {
public String refreshToken;
public String token;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getRefreshToken() {
return refreshToken;
}
public void setRefreshToken(String refreshToken) {
this.refreshToken = refreshToken;
}
}
登录界面xml
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="河东区妇幼保健院"
android:textStyle="bold"
android:textColor="@color/colorLightblue"
android:gravity="center_horizontal"
android:paddingTop="100dp"
android:textSize="40sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<EditText
android:id="@+id/username"
android:layout_width="326dp"
android:layout_height="40dp"
android:layout_marginStart="24dp"
android:layout_marginTop="216dp"
android:layout_marginEnd="24dp"
android:background="@drawable/edittext_shape"
android:hint="请输入工号:"
android:maxEms="1"
android:paddingLeft="10dp"
android:selectAllOnFocus="true"
android:singleLine="true"
android:shape="rectangle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/password"
android:layout_width="326dp"
android:layout_height="40dp"
android:layout_marginStart="24dp"
android:layout_marginTop="52dp"
android:layout_marginEnd="24dp"
android:background="@drawable/edittext_shape"
android:hint="请输入密码:"
android:singleLine="true"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:maxEms="1"
android:paddingLeft="10dp"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<Button
android:id="@+id/login"
android:layout_width="272dp"
android:layout_height="40dp"
android:layout_gravity="start"
android:layout_marginStart="48dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="48dp"
android:layout_marginBottom="64dp"
android:background="@drawable/edittext_shape"
android:enabled="true"
android:text="登 录"
android:onClick="LoginPost"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password"
app:layout_constraintVertical_bias="0.429" />
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="32dp"
android:layout_marginTop="64dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="64dp"
android:background="#FFFFFF"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/password"
app:layout_constraintStart_toStartOf="@+id/password"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
</androidx.constraintlayout.widget.ConstraintLayout>