Rumah >Java >javaTutorial >Bagaimana untuk Mendapatkan Data JSON POST Menggunakan HttpServletRequest?

Bagaimana untuk Mendapatkan Data JSON POST Menggunakan HttpServletRequest?

Susan Sarandon
Susan Sarandonasal
2024-12-19 21:19:15884semak imbas

How to Retrieve JSON POST Data Using HttpServletRequest?

HttpServletRequest: Mendapatkan semula Data JSON POST

Dalam aplikasi web anda, anda menghantar permintaan POST ke URL tertentu dengan data JSON dan anda menggunakan HttpServletRequest untuk mengakses data POST. Walau bagaimanapun, apabila anda menghitung parameter permintaan, anda hanya boleh mencari parameter "cmd" tetapi bukan data JSON.

Biasanya, anda boleh mendapatkan parameter GET dan POST dalam servlet menggunakan request.getParameter("paramName ") kaedah. Ini berfungsi dengan baik apabila data POST dikodkan sebagai pasangan nilai kunci dengan jenis kandungan "application/x-www-form-urlencoded", seperti yang dilihat dalam borang HTML standard.

Dalam kes anda, kerana anda sedang menghantar strim data JSON, anda perlu menggunakan penyahkod tersuai untuk memproses strim data mentah yang boleh diakses daripada request.getReader(). Berikut ialah contoh cara anda boleh mengendalikan pemprosesan JSON POST:

public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

  StringBuffer jb = new StringBuffer();
  String line = null;
  try {
    BufferedReader reader = request.getReader();
    while ((line = reader.readLine()) != null)
      jb.append(line);
  } catch (Exception e) { /*report an error*/ }

  try {
    JSONObject jsonObject =  HTTP.toJSONObject(jb.toString());
  } catch (JSONException e) {
    // crash and burn
    throw new IOException("Error parsing JSON request string");
  }

  // Work with the data using methods like...
  // int someInt = jsonObject.getInt("intParamName");
  // String someString = jsonObject.getString("stringParamName");
  // JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName");
  // JSONArray arr = jsonObject.getJSONArray("arrayParamName");
  // etc...
}

Ringkasnya, jika anda berurusan dengan data JSON POST, anda perlu menggunakan penyahkod tersuai untuk memprosesnya terus daripada badan permintaan, dan bukannya bergantung pada mekanisme penghitungan parameter terbina dalam.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data JSON POST Menggunakan HttpServletRequest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn