我正在Retrofit中实现以下web api。 api example in Postman
要调用api我已经实现了三个类。
api.java
public interface Api {
@POST("/login.jsp")
void login(@Body LoginRequest loginRequest, Callback<String> callback);
}
LoginRequest.java
public class LoginRequest {
private String username;
private String password;
public LoginRequest() {
}
public LoginRequest(String username, String password) {
this.username = username;
this.password = password;
}
}
ServiceClient.java
public class ServiceClient {
private static Api api;
private static String BASE_URL = "http://example.com/xxx";
static {
setupServiceClient();
}
private ServiceClient() {}
public static Api get() {
return api;
}
private static void setupServiceClient() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
api = retrofit.create(Api.class);
}
}
然后我试着将api称为以下。
ServiceClient.get().login(new LoginRequest(user, password), new Callback<String>() {
@Override
public void onResponse(Response<String> response, Retrofit retrofit) {
Log.i(TAG, "SUCESS");
}
@Override
public void onFailure(Throwable t) {
Log.i(TAG, "ERROR");
}
});
但不幸的是,应用程序在调用api后崩溃了。我怀疑这个问题涉及原始json参数值。 有什么建议? 谢谢。