界面
public interface IApiRequest {
@POST("/v1/register")
Observable<ResponseBody> makeRegister(@Body ApiBody.MakeRegister register);
}
要求
public class ApiRequest {
private static IApiRequest init(){
return new Retrofit.Builder()
.baseUrl("https://slife.auth.andviro.pw")
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build().create(IApiRequest.class);
}
public static Observable<ResponseBody> makeRegister(String email, String password){
return init().makeRegister(new ApiBody.MakeRegister(email,password));
}
}
挑战
ApiRequest.makeRegister("chhdjd@mail.ru","sadasd22")
.doOnSubscribe(disposable -> {})
.doFinally(() -> {})
.subscribe(responseBody -> {
Log.e("Test", "main= " + responseBody.string());
},Throwable::printStackTrace).dispose();
启动时出现错误
Exception in thread "main" java.lang.IllegalArgumentException: Unable to create @Body converter for class com.eranewgames.slife.network.ApiBody$MakeRegister (parameter #1)
for method IApiRequest.makeRegister
检查 PostMan 中的代码后,一切正常。我在代码中做错了什么?以前,我只使用表单/数据类型。这是应用程序/json
Retrofit 不知道如何序列化你的对象
ApiBody.MakeRegister
。在 Retrofit 构建器中,指定适合您的 ConverterFactory,例如.addConverterFactory(GsonConverterFactory.create())