我的服务器不接受我通过Retrofit2发送的JSON数据

时间:2019-06-25 10:33:13

标签: android gson retrofit2

我正在向服务器发送JSON数据。

我正在尝试使用json发布retrofit2数据,但遇到一些意外的致命错误。

JSON应该看起来

{
   "lab_details":[
      {
         "floor":1,
         "lab_name":"Lab-1",
         "lab_capacity":100,
         "lab_switch_count":2,
         "ecid":306
      },
      {
         "floor":2,
         "lab_name":"Lab-2",
         "lab_capacity":230,
         "lab_switch_count":3,
         "ecid":306
      },
      {
         "floor":2,
         "lab_name":"Lab-3(Computer Lab)",
         "lab_capacity":300,
         "lab_switch_count":5,
         "ecid":306
      }
   ]
}

Activity API CALL看起来像

plda.setLab_details(pldArray);
Gson gson = new Gson();
final String s = gson.toJson(plda);
System.out.println("after string " + s);
postLabDetailsApiClass.getLab().labcall(s).enqueue(new Callback < postLabDetailsResponsePojo > () {
   @Override
   public void onResponse(Call < postLabDetailsResponsePojo > call, Response < postLabDetailsResponsePojo > response) {
    Log.d("Req", s.toString());
    Log.d("Responses", response.body().toString());
   }

服务器不接受JSON

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ecava_proto1, PID: 19308
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.example.ecava_proto1.postLabDetailsResponsePojo.toString()' on a null object reference

1 个答案:

答案 0 :(得分:0)

response.body().toString()导致NullPointerException,因为response.body()似乎是null。也许您的服务器响应没有任何内容。您提到要在服务器上发布此JSON,这意味着它是请求的一部分,而不是响应