我正在运行一个Java Servlet web服务器,它接收以下请求:
http://localhost: 8080/ForVen Recebimento/recebeDispositivo.jsp ?里={"dispositivo"[{"Id" 0,"DataMod":"2021 - 09 - 28 - t16:55:55.3528819 03:00","SeSincronizar": 0,"NrVersaoReg": 1,"DataSincronizacao":"2021 - 09 - 28 - t16:55:55.3538812 03:00","Guid":"BFEBFBFF000206A7","TipoDispositivo": 0,"URL":","VendedorId": 1}]}
当我发送它时,它给了我以下错误:
javax.servlet。ServletException: org.json.JSONException: {"dispositivo"; [{"Id":0,"DataMod";";2021-09-28T16:55:55.3528819-03:00";SeSincronizar"; 0,"NrVersaoReg"; 1,"DataSincronizacao";";;BFEBFBFF000206A7","TipoDispositivo"; 0,"URL";";; 3538812-03:00";]
如果我尝试发送相同的请求,但使用JSON "formatted",它可以工作。
http://localhost: 8080/ForVen Recebimento/recebeDispositivo.jsp ?里={"dispositivo"[{"Id" 0,"DataMod":"2021 - 09 - 28 - t16:55:55.3528819 03:00","SeSincronizar": 0,"NrVersaoReg": 1,"DataSincronizacao":"2021 - 09 - 28 - t16:55:55.3538812 03:00","Guid":"BFEBFBFF000206A7","TipoDispositivo": 0,"URL":","VendedorId": 1}]}
这是我反序列化JSON的方式:
JSONObject jso = new JSONObject(myIncomingJson);
我不知道它是否与一些Apache配置有关,但我希望如此,更改所有客户端请求将是非常痛苦的。
正如f1sh所说,我必须对URL上发送的JSON进行编码,我的错误是我没有看到它。:)
URL应该是这样:
http://192.168.1.58:8080 ForVen/Recebimento/recebeDispositivo.jsp ?里= % 7 b % 5 c % 22 dispositivo % 5 c % 3 22% % 5 b % 7 b % 5 c % 22 id % 5 c % 22% 3 a0 % 2 c % 5 c % 22 datamod % 5 c % 3 22% % 5 c % 222021 - 09 - 30 t09 % 3 a15 % 3 a37.4138271-03 % 3 a00 % 5 c % 22% 2 c % 5 c % 22 sesincronizar % 5 c % 22% 3 a0 % 2 c % 5 c % 22 nrversaoreg % 5 c % 22% 3 a1 % 2 c % 5 c % 22 datasincronizacao % 5 c % 3 22% % % 222021 - 09 - 30 - 5度t09 % 3 a15 % 3 a37.4148274-03 % 3 a00 % 5 c % 22% 2 c % 5 c % 22 guid % 5 c % 3 22% % 5 c % 22 bfebfbff000206a7 % 5 c % 22% 2 c % 5 c % 22 tipodispositivo % 5 c % 22% 3 a0 % 2 c % 5 c % 22 url % 5 c % 3 22% % 5 c % 22% 5 c % 22% 2 c % 5 c % 22 vendedorid % 5 c % 3 a1 % 7 22%D % 5 D % 7 D