Java obtém o conteúdo do corpo na solicitação de postagem por meio de HttpServletRequest

     Em uma aplicação web java, como obtemos o conteúdo no corpo da pós-solicitação? e questões que precisam de atenção.
    Normalmente, usando solicitação para obter parâmetros, você pode obter os parâmetros diretamente na URL ou enviados por dados ajax através de req.getParameter(name). Porém, o corpo não tem nome e não pode ser obtido por meio de nomes de parâmetros. Neste momento, você precisa usar o fluxo io para obter o conteúdo do corpo.
    Aqui está um trecho de código postado primeiro:

pacote com.lenovo.servlet; 
importar java.io.BufferedReader; 
importar java.io.IOException; 
importar java.io.InputStreamReader; 

importar javax.servlet.ServletException; 
importar javax.servlet.http.HttpServlet; 
importar javax.servlet.http.HttpServletRequest; 
importar javax.servlet.http.HttpServletResponse; 

importar org.apache.commons.lang.StringUtils; 
importar org.apache.log4j.Logger; 

importar com.alibaba.dubbo.common.utils.IOUtils; 
importar com.lenovo.service.BusinessService; 
importar com.lenovo.utils.WebContext; 
classe pública BusinessServlet estende HttpServlet{ 
	public static final Logger log = Logger.getLogger(BusinessServlet.class); 
	
	/**  
	 *
	 */
	privado estático final longo serialVersionUID = 1L; 
	serviço BusinessService estático privado; 
	estático{ 
		serviço = (BusinessService) WebContext.getBean("businessService");		
	} 
	@Override 
	protegido void doGet(HttpServletRequest req, HttpServletResponse resp) 
			lança ServletException, IOException { 
		doPost(req, resp); 
	} 
	@Override 
	protected void doPost(HttpServletRequest req, HttpServletResponse res) 
			lança ServletException, IOException { 
		
		BufferedReader reader = new BufferedReader(new InputStreamReader(req.getInputStream())); 
		String corpo = IOUtils.read(leitor); 
		String nome = req.getParameter("nome");
		if(StringUtils.isNotBlank(body)){ 
			log.info("negócio recebe algo com body :"+body); 
		} 
		res.setCharacterEncoding("UTF-8"); 
		res.setContentType("aplicativo/json"); 
		res.setStatus(HttpServletResponse.SC_OK); 
		res.getWriter().println(service.getName(nome)); 
	} 
	
}
     No método doPost deste código, o fluxo IO é utilizado para obter o corpo enviado pelo post, para que possamos obter os parâmetros enviados pelo cliente.

     Deve-se observar que: para obter os parâmetros do corpo, você precisa chamá-lo antes do método request.getParameter() (se precisar obter o parâmetro QueryString), pois uma vez chamado o método getParameter(), obtendo os parâmetros do corpo através do fluxo IO será inválido (o teste pessoal retorna "").

     Além disso, o método IOUtils.read(reader) de dubbo-2.5.3.jar é usado aqui para ler o conteúdo do corpo da postagem.

Acho que você gosta

Origin blog.csdn.net/feinifi/article/details/72990249
Recomendado
Clasificación