如何在Retrofit中传递原始json数据

时间:2015-11-25 17:14:32

标签: java android retrofit

我正在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参数值。 有什么建议? 谢谢。

0 个答案:

没有答案