我不能够让使用改造的网络电话,它会导致应用程序冻结。下面是我的代码:
RegisterUserApi:
public interface RegisterUserApi
{
@FormUrlEncoded
@POST("register.php")
Call<RegisterUserData> registerUser(
@Field("email") String email,
@Field("password") String password
);
}
RegisterUserData:
public class RegisterUserData
{
@SerializedName("value")
private String value;
@SerializedName("email")
private String email;
public RegisterUserData() {}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
RegisterActivity:
Gson gson = new GsonBuilder().setLenient().create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://www.website.com/")
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
RegisterUserApi registerApi = retrofit.create(RegisterUserApi.class);
System.out.println("inside 1");
Call<RegisterUserData> registerUserDataCall = registerApi.registerUser(email, password);
System.out.println("inside 2");
registerUserDataCall.enqueue(new Callback<RegisterUserData>() {
@Override
public void onResponse(@NonNull Call<RegisterUserData> call, retrofit2.Response<RegisterUserData> response) {
try
{
}
catch(Exception e)
{
e.printStackTrace();
}
}
@Override
public void onFailure(@NonNull Call<RegisterUserData> call, @NonNull Throwable t) {
t.printStackTrace();
}
});
现在呼叫在RegisterActivity此功能,logcat的是打印“内1”,而不是“内2”,会导致应用冻结。
我不知道究竟发生了,我不是在logcat中得到任何错误也是如此。
是否有人可以帮助我在这?
gradle这个:
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
另外有一两件事我注意到的是,如果我改变RegisterUserApi和RegisterUserData文件名称到别的东西,它可能会开始工作。我不知道为什么会是这个样子
我有相同的一组的登录文件,以及它工作正常。
你可以尝试发送@Body或@Path。
public interface RegisterUserApi
{
@FormUrlEncoded
@POST("register.php")
Call<RegisterUserData> registerUser(
@Path("email") String email,
@Path("password") String password
);
}
要么
public interface RegisterUserApi
{
@FormUrlEncoded
@POST("register.php")
Call<RegisterUserData> registerUser(@Body("userInfo") ModelUserInfo mui);
}
就在AndroidManifest.xml中添加此行
android:usesCleartextTraffic="true"
应用标签