Ich versuche, eine Post mit Retrofit zu tun, um zu überprüfen, ob einige Daten im Server vorhanden sind. Mein Problem ist, dass onResponse oder OnFailure durchgehen. Der Code wird in diesen beiden Methoden niemals übergeben. Ich bekomme keinen Fehler im Log. Wenn ich debuggen, hier der Code stop: call.enqueue (neuer Rückruf() und im nächsten Schritt außerhalb des Verfahrens gehtPost-Methode mit Retrofit nie in OnResponse oder OnFailure
wird Einige helfen
-Code zu schätzen wissen werden.
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<User> call = apiService.smsPincodeCheck(getPhoneNuber, email);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if(response.isSuccess()){
Toast.makeText(RegisterThreeActivity.this, "200", Toast.LENGTH_SHORT).show();
}
if(response.code() == 401){
Toast.makeText(RegisterThreeActivity.this, "401", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
}
});
Schnittstelle :
@FormUrlEncoded
@POST("api/check")
Call<User> smsPincodeCheck(@Field("email") String email, @Field("phoneNumber") String phoneNumber);
User-Modell:
public class User implements Serializable {
private final static String TAG = "User";
@SerializedName("user")
@Expose
private Long id;
private Long commerceId;
private String email;
private String name;
private String lastname;
private String dni;
private String companyCharge;
.
.
. Getters and setters
JSON:
Dies ist die json, die ich an den Server zu senden bin versucht:
{
"phoneNumber" : "444444444",
"email" : "[email protected]"
}
EDIT 1:
Call<ResponseSMS> call = apiService.smsPincodeCheck(getPhoneNuber, email);
call.enqueue(new Callback<ResponseSMS>() {
@Override
public void onResponse(Call<ResponseSMS> call, Response<ResponseSMS> response) {
if(response.isSuccess()){
Toast.makeText(RegisterThreeActivity.this, "200", Toast.LENGTH_SHORT).show();
}
if(response.code() == 401){
Toast.makeText(RegisterThreeActivity.this, "401", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ResponseSMS> call, Throwable t) {
Toast.makeText(RegisterThreeActivity.this, "Failure", Toast.LENGTH_SHORT).show();
}
});
}
Schnittstelle:
Call<ResponseSMS> smsPincodeCheck(@Field("email") String email, @Field("phoneNumber") String phoneNumber);
Modell :
public class ResponseSMS {
public String response;
public int status;
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
Sie sagen, dass Sie versuchen, JSON zu senden, aber Ihre Retorift Schnittstelle beschreibt, dass Ihr versuchen Form zu senden – Divers
Nach dem Anruf Web-Service, welche Art von Daten kehren Sie vom Server? Handelt es sich bei diesen Daten um ein 'Benutzer'-Modell? –
Wie kann ich einen Json mit meiner Schnittstelle senden? Der Server gibt nichts zurück. –