我正在使用改造进行API调用来验证Android应用程序中服务器的登录凭据。
例如,这是我的网址:http://example.com/park/app/login.php?username=xyz&password=1234&user_type=1&device_id=12345
我创建了具有URl和常量的Utils类。
public class Utils {
public static final String user_type = "1";
public static final String device_id = "12345";
private static final String LOGIN_URL = "http://example.com/";
public static ApiServices getServices() {
return RetroFitClient.getClient(LOGIN_URL).create(ApiServices.class);
}
public class RetroFitClient {
private static Retrofit retroFit = null;
public static Retrofit getClient(String url) {
return (retroFit == null) ? (new Retrofit.Builder().baseUrl(url)
.addConverterFactory(GsonConverterFactory
.create()).build()) : retroFit;
}
}
这是界面:
public interface ApiServices {
@GET("park/app/login.php?")
Call<Result> loginUser
(@Query("username") String username,
@Query("password") String passwoord,
@Query("user_type") String user_type,
@Query("device_id") String device_id);
}
当我致电服务时
private void doLogin(String name, String passwoord, String user_type, String deviceid) {
Call<Result> call = apiServices.loginUser(name, passwoord, user_type, deviceid);
call.enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result> response) {
Log.e("OnResponse", response.body().getMessage()+" status "+response.body().isStatus());
if (response.body().isStatus()) {
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "UserName or Password is incorrect", Toast.LENGTH_SHORT).show();
}
}
我收到状态为
04-25 17:13:20.461 31947-32086/com.example.innobles.velparked D/dalvikvm: VFY: replacing opcode 0x71 at 0x000a
04-25 17:13:20.751 31947-31947/com.example.innobles.velparked E/OnResponse: Invalid User. status false
哪个M我做错了?
有什么想法吗?
答案 0 :(得分:0)
编辑以下行:
@GET("park/app/login.php?")
要:
@GET("park/app/login")
同时检查您是否提供有效凭据。 此外,尝试将user_type作为int传递,如下所示:
@GET("park/app/login.php")
Call<Result> loginUser
(@Query("username") String username,
@Query("password") String passwoord,
@Query("user_type") int user_type,
@Query("device_id") String device_id);