2011-07-12 26 views
13

Necesito enviar datos brutos en el cuerpo de una solicitud POST a un servicio web. ¿Puedo lograr esto con un formulario HTML?¿Se envía una solicitud POST de datos SIN PROCESAR con un formulario HTML?

El uso de un campo de entrada HTML estándar parece generar inevitablemente un cuerpo POST del formulario <name_of_input_field>=<DATA> mientras que simplemente me gustaría publicar <DATA>.

¿Debo realizar esta solicitud con javascript?

Respuesta

9

¿Puedo lograr esto con un formulario HTML?

No.

Una forma puede enviar cualquiera de las aplicaciones/datos/form-de datos de varias copias x-www-form-urlencoded o.

Si desea utilizar un formato de datos diferente, debe comenzar a buscar JavaScript y XHR (y estar sujeto a la misma política de origen, y así sucesivamente).

Sería mejor escribir el código del lado del servidor para aceptar una de las codificaciones anteriores en su lugar: no hay escasez de bibliotecas que puedan decodificarlas.

+0

Por desgracia, eso no es un cambio factible hacer en este momento. El backend está bastante ajustado con SpringMVC, usando @RequestBody para la entrada en ciertos casos. –

-4

De lo contrario, utilice CURL, wget u otras herramientas de línea de comandos.

curl -X POST -d "Your raw body data" -H "Content-type: text/plain" http://example.com/path/to/eternal/fame 
1

Hay un hack potencial aquí. Si sus datos o bien tiene un natrual "=" en ella, o puede modificarlo para que un "=" se pueden añadir de alguna manera inofensiva, puede:

  • Establecer las formas ENCTYPE text/plain
  • Establecer una entrada oculta w/un nombre tomada desde el inicio de sus sus datos, hasta, pero sin incluir el primer "="
  • definir los campos de entrada valor al byte que sigue los "= "hasta el final de los datos.

Fuente donde aprendí acerca de esta técnica:

https://systemoverlord.com/2016/08/24/posting-json-with-an-html-form.html

Cuestiones relacionadas