La diferencia entre la carga útil de la solicitud, los parámetros de la cadena de consulta y los datos del formulario para las solicitudes HTTP

Al transferir datos con el servidor, los métodos GET y POST generalmente se utilizan para el envío de parámetros, y el método de envío de parámetros generalmente depende de la forma en que el servidor recibe los datos.

1.Solicitar carga útil

Cuando se inicia una solicitud POST, si el tipo de contenido es application / json, los parámetros se pasarán en forma de Request Payload (obviamente, el formato de datos es JSON) y no aparecerán explícitamente en la URL de la solicitud.
encabezados:
Inserte la descripción de la imagen aquíparámetros entrantes:
Inserte la descripción de la imagen aquí

problema comun:

La interfaz de solicitud de vue axois se analiza como Request Payload de forma predeterminada.

Si desea pasar datos a través de Form Data, puede usar el método nativo formData () para ensamblar datos, y el tipo de contenido debe establecerse en multipart / form-data.

Plan de liberación:
cambie 'Content-Type': 'application / json' a: 'Content-Type': 'application / x-www-form-urlencoded', el
método es el siguiente:

// 通用公用方法
const req = (method, url, params) => {  
  return axios({   
     method: method,  
     url: url,      
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded',     
  },       
   data: params,     
  traditional: true,    
 transformRequest: [  
 function(data) {     
       let ret = ''              
       for (let it in data) {     
         ret +=                    
        encodeURIComponent(it) +            
          '=' +                      
         encodeURIComponent(data[it]) +        
         '&' 
         }               
          return ret          
     }        
   ]   
  }).then(res => res.data);};

El cuerpo de la solicitud es Request Payload y el encabezado de la solicitud Content-Type: application / json. Para solicitudes de esta manera, @RequestParam no puede recibir parámetros en segundo plano. Solo puede usar @RequestBody o implementar la  interfaz HandlerMethodArgumentResolver de Spring y personalizar los parámetros. El analizador recibe los parámetros individualmente.

El formato del cuerpo de la solicitud de la carga útil de la solicitud es una cadena en formato json:
{"loginName": "admin", "contraseña": "123456"}

2.Datos del formulario

Cuando se inicia una solicitud POST, si no se especifica el tipo de contenido, el tipo de contenido predeterminado es application / x-www-form-urlencoded. Es decir, los parámetros se pasarán en forma de datos de formulario y no aparecerán explícitamente en la URL de la solicitud.
Inserte la descripción de la imagen aquí

Solicitud de datos del formulario:
Escriba la descripción de la imagen aquí

El formato del cuerpo de la solicitud de los datos del formulario es key = value & key1 = value2:
loginName = admin & password = 123456

Procesamiento en segundo plano:
para solicitudes de carga útil de solicitud, se debe agregar @RequestBody para analizar el cuerpo de la solicitud en el bean correspondiente, y el contenido del cuerpo de la solicitud solo se puede obtener a través de request.getReader ()
Escriba la descripción de la imagen aquí

Para las solicitudes de Form Data, no hay necesidad de anotaciones, springmvc usará automáticamente MessageConverter para analizar los parámetros de solicitud a los beans correspondientes, y los parámetros de solicitud se pueden obtener a través de request.getParameter (...), o recibidos a través de @RequestParam

3.Parámetros de cadena de consulta

Parámetros de cadena de consulta Cuando se inicia una solicitud GET, los parámetros se pasarán en forma de cadena de URL. Es decir, la cadena después de? Es su parámetro de solicitud, con & como separador. Los siguientes encabezados de mensajes de solicitud http:
encabezados:
Inserte la descripción de la imagen aquí
parámetros entrantes:

Inserte la descripción de la imagen aquí

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/AN0692/article/details/109675466
Recomendado
Clasificación