我可以发布对象,状态代码为200,但response.body()为null。为什么这个为空?当我发送数据时,条形码为空。返回时,条形码必须具有值。因为我需要回报价值。我如何获得返回值? 谢谢。
这是我的对象。
EtiketItemPostModel:
public class EtiketItemPostModel {
List<EtiketItemModels> EtiketItemModels;
private String FaturaNo;
private String Barkod;
EtiketItemPostModel(List<EtiketItemModels> EtiketItemModels, String
FaturaNo,String Barkod) {
this.FaturaNo = FaturaNo;
this.EtiketItemModels = EtiketItemModels;
this.Barkod= Barkod;
}
public String getFaturaNo() {
return FaturaNo;
}
public List<EtiketItemModels> getEtiketItem_models() {
return EtiketItemModels;
}
public String getBarkod(){
return Barkod;
}
}
EtiketItemModels:
public class EtiketItemModels {
String StokKodu;
String StokAdi;
String Unit;
double Qtty;
public EtiketItemModels(String StokKodu, String StokAdi, String Unit,
double Qtty) {
this.StokKodu = StokKodu;
this.StokAdi = StokAdi;
this.Unit = Unit;
this.Qtty = Qtty;
}
public String getStokKodu() {
return StokKodu;
}
public String getStokAdi() {
return StokAdi;
}
public String getUnit() {
return Unit;
}
public double getQtty() {
return Qtty;
}
}
界面:
public interface Etiket_Post {
@POST("api/r_etiket")
Call<EtiketItemPostModel> post_etiket(@Body EtiketItemPostModel items);
}
改造电话:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("myURL")
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
Etiket_Post etiket_post = retrofit.create(Etiket_Post.class);
ArrayList<EtiketItemModels> items = new ArrayList<>();
for (int e = 0; e < okutulan_list.size(); e++) {
items.add(new EtiketItemModels(
okutulan_list.get(e).STOK_KODU,
okutulan_list.get(e).STOK_ADI,
okutulan_list.get(e).OlcuBrim,
okutulan_list.get(e).STHAR_GCMIK));
}
String faturano = FileId;
EtiketItemPostModel etiketPostClass = new EtiketItemPostModel(items, FileId, "");
Call<EtiketItemPostModel> call = etiket_post.post_etiket(etiketPostClass);
call.enqueue(new Callback<EtiketItemPostModel>() {
@Override
public void onResponse(Call<EtiketItemPostModel> call, Response<EtiketItemPostModel> response) {
if (response.isSuccessful()) {
String test = response.body().getBarkod();
}
}
@Override
public void onFailure(Call<EtiketItemPostModel> call, Throwable t) {
String tesT = t.getMessage();
}
});
答案 0 :(得分:0)
我找到了解决方案。我更改了接口类。我调用了Object
,但返回值为String
。我期望一个字符串值,所以我的新接口类是:
@POST("api/r_etiket")
Call<String> post_etiket(@Body EtiketItemPostModel items);