java.io.EOFException:Android改型中第1行第1列路径$1处输入结束
我正在使用改造来使用RESTAPI端点,我遇到了以下问题。 我认为TransactionResponse类上的数据模型有问题,但还不确定 java.io.EOFException:第1行第1列路径$in处的输入结束 安卓系统改造 我的电话请求如下java.io.EOFException:Android改型中第1行第1列路径$1处输入结束,java,android,rest,retrofit2,Java,Android,Rest,Retrofit2,我正在使用改造来使用RESTAPI端点,我遇到了以下问题。 我认为TransactionResponse类上的数据模型有问题,但还不确定 java.io.EOFException:第1行第1列路径$in处的输入结束 安卓系统改造 我的电话请求如下 @FormUrlEncoded @POST("/ifapi.php") Call<TransactionResponse> loadData(@Field("user") TransactionRequest user); 下面是实际完
@FormUrlEncoded
@POST("/ifapi.php")
Call<TransactionResponse> loadData(@Field("user") TransactionRequest user);
下面是实际完成调用的代码
OkHttpClient httpClient = new OkHttpClient.Builder().build();
Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create()).baseUrl(
RestAPI.BASE_URL).client(httpClient).build();
RestAPI service = retrofit.create(RestAPI.class);
Call<TransactionResponse> meResponse = service.loadData(request);
meResponse.enqueue(new Callback<TransactionResponse>() {
@Override
public void onResponse(Call<TransactionResponse> call, Response<TransactionResponse> response) {
if (response.isSuccessful()) {
TransactionResponse body = response.body();
Actions actions = body.getActions();
Map<String, String> params = actions.getParams();
}
}
@Override
public void onFailure(Call<TransactionResponse> call, Throwable t){
t.printStackTrace();
}
});
另外,我发现请求使用表单数据,但不使用JSON数据。
我已经找到了解决方案,您需要以如下形式发布每个参数,而不是在包装器类中
@FormUrlEncoded
@POST("/ifapi.php")
Call<TransactionResponse> loadData(@Field("app_id") String app_id, @Field("install_id") String install_id, @Field("useragent") String useragent, @Field("ip") String ip, @Field("mccmnc") String mccmnc, @Field("action") String action );
@FormUrlEncoded
@POST(“/ifapi.php”)
调用loadData(@Field(“app_id”)字符串app_id、@Field(“install_id”)字符串install_id、@Field(“useragent”)字符串useragent、@Field(“ip”)字符串ip、@Field(“mccmnc”)字符串mccmnc、@Field(“action”)字符串action);
主要活动部分
OkHttpClient httpClient = new OkHttpClient.Builder().build();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(RestAPI.BASE_URL).client(httpClient).build();
RestAPI service = retrofit.create(RestAPI.class);
Call<TransactionResponse> meResponse = service.loadData("1", getUUID(), getUserAgent(), getIPAddress(), "20404", "start");
OkHttpClient-httpClient=new-OkHttpClient.Builder().build();
Gson Gson=new GsonBuilder()
.setLenient()
.create();
改装改装=新建改装.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(RestAPI.BASE_URL).client(httpClient.build();
RestAPI服务=翻新.create(RestAPI.class);
调用meResponse=service.loadData(“1”,getUUID(),getUserAgent(),getIPAddress(),“20404”,“start”);
希望这能解决您的问题,尊敬的。当我使用协同程序时,帮助我的是没有从函数调用返回任何内容:
@GET
@标题(“X-request-With:XMLHttpRequest”)
暂停功能调用(
@Url:String
)
在改装github时查看此项。它说你的正文长度是0谢谢,我已经知道这个问题,这就是为什么我想在我的数据模型上查找问题。我发现了这个问题,你是对的,正文是空的,因为调用只处理表单请求。你能帮我继续吗?你工作得很卖力,你救了我一天!谢谢。修复了我面临的相同问题。突然,当使用协同路由时,我的网络呼叫总是会返回一个错误。删除返回值修复了它,谢谢!但是你知道为什么添加报税表会导致错误吗?
@FormUrlEncoded
@POST("/ifapi.php")
Call<TransactionResponse> loadData(@Field("app_id") String app_id, @Field("install_id") String install_id, @Field("useragent") String useragent, @Field("ip") String ip, @Field("mccmnc") String mccmnc, @Field("action") String action );
OkHttpClient httpClient = new OkHttpClient.Builder().build();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(RestAPI.BASE_URL).client(httpClient).build();
RestAPI service = retrofit.create(RestAPI.class);
Call<TransactionResponse> meResponse = service.loadData("1", getUUID(), getUserAgent(), getIPAddress(), "20404", "start");