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

Bagaimana untuk Mendapatkan Data JSON POST Menggunakan HttpServletRequest?

Susan Sarandon
Lepaskan: 2024-12-19 21:19:15
asal
792 orang telah melayarinya

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...
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan