пустой Reqest в Java Servlet, проблемы с GSON

213
03 ноября 2018, 08:50

Парни привет! Есть вот такой код на тачке:

public class testServ extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    PrintWriter printWriter = resp.getWriter();
    iLog iLog = new iLog();
    System.out.println(req.getHeader("phone"));
    System.out.println(req.getParameter("phone"));
    System.out.println(req.getParameterMap().get("phone"));
    System.out.println(req.getReader().lines().collect(Collectors.joining(System.lineSeparator())));
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}

И вот такой на фронте:

    public void initRequest(final String phone, final String password){
    JSONObject param = new JSONObject();
    try {
        param.put("phone",phone);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    queue = Volley.newRequestQueue(context);
    request = new JsonObjectRequest(Request.Method.POST, url, param, new Response.Listener<JSONObject>() {
      @Override
      public void onResponse(JSONObject response) {
          Log.d("TEST",response.toString());
         }
     }, new Response.ErrorListener() {
      @Override
      public void onErrorResponse(VolleyError error) {
          Log.d("tester",error.toString());
      }
  });
      queue.add(request);
    System.out.println(param.toString());
}

На фронте стоит VOLLEY. Проблема в том, что как бы я мучал фронт, на тачке у меня получается хоть что-то забрать из реквеста только последним методом. getHeader и getParam если к VOLLEY прописать тоже null при любом раскладе кроме последнего. Я бы особо не жаловался и распарсил на тачке все это дело библиотекой GSON, но когда я просто создаю ее экземпляр в сервлете, почему-то все падает. Единственное, что пишет это на фронте, мол ошибка сервера, хотя на тачке не выбивает никакой стэк трейс.

Помогите плз или понять что не так с GSON или , что я делаю не так, что не могу забрать данные любым из способов кроме последнего на тачке(

Answer 1

В заголовке вы ничего не отправляете json, а в теле реквеста. Если такой сспособ чтения из тела реквеста вам подходит, то вы можете вернуть то, что распарсили в объект. В данном случае надо написать toString() чтобы вернуть объект с сервера.

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   String list1 = req.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
   System.out.println(list1);
   Gson gson = new Gson();
   iLog iLog = gson.fromJson(list1, iLog.class);
   resp.setContentType("text/plain");
   resp.getWriter().write(String.valueOf(iLog); 
}
READ ALSO
Что значит :: знак в java? [дубликат]

Что значит :: знак в java? [дубликат]

На данный вопрос уже ответили:

171
получить полный URL

получить полный URL

подскажите пожалуйста как получит откуда был запрос, те

189
СSS как сделать такие ссылки?

СSS как сделать такие ссылки?

Как c помощью СSS сделать такие ссылки? Нужно чтобы при наведении курсором они были оранжевыми с белыми символами, а без курсора с серыми с черными...

218
Яндекс.Карты: как отобразить Circle поверх меток?

Яндекс.Карты: как отобразить Circle поверх меток?

Метки загружаются в ObjectManager, затем ObjectManager добавляется к MapgeoObject, после этого туда же добавляются два Circle

169