Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理没有pojo类的改装状态代码_Java_Android_Retrofit - Fatal编程技术网

Java 处理没有pojo类的改装状态代码

Java 处理没有pojo类的改装状态代码,java,android,retrofit,Java,Android,Retrofit,我从服务器得到以下响应:状态代码201已创建。 没有实际响应(返回的对象等),因此不需要创建POJO类 因此,我不知道在不创建POJO类的情况下如何处理此状态代码。是否有任何选项可以让您在不使用POJO类的情况下编写代码?改型API具有可以封装您的响应的类 只要您不想麻烦处理响应数据,您就可以将服务实现为: interface CustomService { @GET("whatever") Call<Response<Void>> getAll();

我从服务器得到以下响应:状态代码
201已创建
。 没有实际响应(返回的对象等),因此不需要创建POJO类

因此,我不知道在不创建POJO类的情况下如何处理此状态代码。是否有任何选项可以让您在不使用POJO类的情况下编写代码?

改型API具有可以封装您的响应的类

只要您不想麻烦处理响应数据,您就可以将服务实现为:

interface CustomService {
    @GET("whatever")
    Call<Response<Void>> getAll();

    // Or using RxJava:
    @GET("whatever")
    Single<Response<Void>> getRxAll();
}
接口定制服务{
@得到(“任何东西”)
调用getAll();
//或者使用RxJava:
@得到(“任何东西”)
单getRxAll();
}
然后实现回调:

private Callback<Response<Void>> responseHandler = new Callback<Response<Void>>() {
  @Override
  public void onResponse(Call<Response<Void>> call, Response<Response<Void>> response) {
    final int code = response.code();
    // TODO: Do whatever you want with the response code.
  }

  @Override
  public void onFailure(Call<Response<Void>> call, Throwable t) {
      // TODO: Handle failure.
  }
}
private Callback responseHandler=new Callback(){
@凌驾
公共void onResponse(调用、响应){
final int code=response.code();
//TODO:对响应代码执行任何操作。
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
//TODO:处理失败。
}
}
或被动消费者:

private Consumer<Response<Void>> responseRxHandler = new Consumer<Response<Void>>() {
  @Override
  public void accept(Response<Void> response) throws Exception {
      final int responseCode = response.code();
      // TODO: Do whatever you want with the response code.
  }
};
private Consumer responseRxHandler=new Consumer(){
@凌驾
公共void接受(响应)引发异常{
final int responseCode=response.code();
//TODO:对响应代码执行任何操作。
}
};

调试结果:

您可以尝试以下代码

通过使用ResponseBody格式获取响应,您可以在不使用POJO类的情况下获取响应,然后您可以像普通JSON解析一样对其进行正常解析

Api调用:

Call<ResponseBody> call = service.callLogin(AppConstants.mApiKey, model_obj);

    call.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            if(response.code() == 201)
    {
     JSONObject jobjresponse = null;
    try {
            jobjresponse = new JSONObject(mResponse.body().string());
            String status = jobjresponse.getString("status");
            JSONObject  result = jobjresponse.getJSONObject("results");
                    String  msg = result.getString(“msg”);  
} catch (JSONException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }       

        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {

        }
    });
检查此使用
调用
。查看此线程:
public interface RetrofitInterface {
@Headers({"Content-Type: application/json", "Cache-Control: max-age=640000"})
@POST("v1/auth/")
public Call<ResponseBody> callLogin(@Query("key") String key, @Body LoginModel body);

public static final Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(“base url”)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
}
{ "status":"true", "result":{"msg”:”created successfully”} }