>Java >java지도 시간 >HttpServletRequest를 사용하여 JSON POST 데이터를 검색하는 방법은 무엇입니까?

HttpServletRequest를 사용하여 JSON POST 데이터를 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-19 21:19:15870검색

How to Retrieve JSON POST Data Using HttpServletRequest?

HttpServletRequest: JSON POST 데이터 검색

웹 애플리케이션에서 JSON 데이터가 포함된 특정 URL로 POST 요청을 보내고 HttpServletRequest를 사용하고 있습니다. POST 데이터에 액세스합니다. 그러나 요청 매개변수를 열거하면 "cmd" 매개변수만 찾을 수 있고 JSON 데이터는 찾을 수 없습니다.

일반적으로 request.getParameter("paramName)를 사용하여 서블릿에서 GET 및 POST 매개변수를 얻을 수 있습니다. ") 방법. 이는 표준 HTML 형식에서 볼 수 있듯이 POST 데이터가 "application/x-www-form-urlencoded" 콘텐츠 유형의 키-값 쌍으로 인코딩될 때 잘 작동합니다.

귀하의 경우에는 JSON 데이터 스트림을 보내는 경우 request.getReader()에서 액세스할 수 있는 원시 데이터 스트림을 처리하기 위해 사용자 정의 디코더를 사용해야 합니다. 다음은 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...
}

요약하자면, JSON POST 데이터를 처리하는 경우 요청 본문에서 직접 처리하려면 사용자 지정 디코더를 사용해야 합니다. 내장된 매개변수 열거 메커니즘에 의존하는 대신

위 내용은 HttpServletRequest를 사용하여 JSON POST 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.