gpt4 book ai didi

android - 在 Android 的 body() 方法中改造返回 null

转载 作者:行者123 更新时间:2023-11-28 23:24:11 25 4
gpt4 key购买 nike

我找不到这些代码行中语义错误的位置:

PuntoGpsRecorridoDTO puntoGpsRecorridoDto = new PuntoGpsRecorridoDTO();
puntoGpsRecorridoDto.setDescripcion(puntoGpsRecorrido.getDescripcion());
puntoGpsRecorridoDto.setIdRecorrido(37);
puntoGpsRecorridoDto.setDemoraSeg(2);
puntoGpsRecorridoDto.setPrecisionMts(10);
puntoGpsRecorridoDto.setEstado(puntoGpsRecorrido.getEstado());
puntoGpsRecorridoDto.setFechaHora(puntoGpsRecorrido.getFechaHora());
puntoGpsRecorridoDto.setIdDispositivo("943953977-OFICINA");
puntoGpsRecorridoDto.setLatitud(puntoGpsRecorrido.getLatitud());
puntoGpsRecorridoDto.setLongitud(puntoGpsRecorrido.getLongitud());
puntoGpsRecorridoDto.setPrecisionMts(puntoGpsRecorrido.getPrecisionMts());
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDateDeserializer()).create();
Retrofit retrofit = new Retrofit.Builder().baseUrl(Util.URL_WS).addConverterFactory(GsonConverterFactory.create(gson)).build();
LocationService locationService = retrofit.create(LocationService.class);
Call<EstadoDTO> callEstadoDto = locationService.enviarPuntoGpsRecorrido(puntoGpsRecorridoDto);
Response<EstadoDTO> exec = callEstadoDto.execute();
estadoDto = exec.body(); // <<<------ body() return NULL

改造客户端的位置服务接口(interface):

public interface LocationService
{
@POST("recorrido/sending")
Call<EstadoDTO> enviarPuntoGpsRecorrido(@Body PuntoGpsRecorridoDTO puntoGpsRecorridoDto);
}

连接到服务? ---> 是的,

它以另一种方式起作用? --> 是的,用 SoapUI 测试,

服务器? ---> Apache tomcat + Mysql + Hibernate

PuntoGpsRecorridoDTO 类:

public class PuntoGpsRecorridoDTO 
{
private Integer idRecorrido;
private String idDispositivo;
private Double latitud;
private Double longitud;
private Boolean estado;
private String descripcion;
private Integer precisionMts;
private Integer demoraSeg;
private Date fechaHora;

public PuntoGpsRecorridoDTO()
{
}
}

PuntoGpsRecorrido 类:

@DatabaseTable(tableName = "PuntoGpsRecorrido")
public class PuntoGpsRecorrido
{
@DatabaseField(generatedId = true)
private Integer idRecorrido;

@DatabaseField(foreign = true, canBeNull = false)
private Dispositivo dispositivo;
@DatabaseField
private Double latitud;
@DatabaseField
private Double longitud;
@DatabaseField
private Boolean estado;
@DatabaseField
private String descripcion;
@DatabaseField
private Integer precisionMts;
@DatabaseField
private Integer demoraSeg;
@DatabaseField
private Date fechaHora;

public PuntoGpsRecorrido()
{}
}

EstadoDTO 类:

public class EstadoDTO
{
public static final String EXITO="001";
public static final String ERROR="000";

private String code;
private String msg;
private String extra;

public EstadoDTO()
{}

}

错误:

enter image description here

用 SoapUI 测试,很顺利:

enter image description here

What am I doing wrong ? Please let me know if you for more information need. Thanks in advance.

最佳答案

使用下面的代码,它将处理来自服务器的各种故障,您可能需要升级到最新版本的 Retrofit。

调用 callEstadoDto = locationService.enviarPuntoGpsRecorrido(puntoGpsRecorridoDto);

            callEstadoDto.enqueue(new Callback<EstadoDTO>() {
@Override
public void onResponse(Response<EstadoDTO> response, Retrofit retrofit) {
hideLoader();
if(response.isSuccess()){

//do your thing

}else{

String error=response.errorBody().string();
}
}

@Override
public void onFailure(Throwable t) {


Log.e("error " , ""+t.toString());
}
});

关于android - 在 Android 的 body() 方法中改造返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39218632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com