java - issue - REST: HTTP Post Multipart con JSON
jira rest api example (1)
Si lo entiendo correctamente, quiere redactar una solicitud de varias partes manualmente desde una consola HTTP / REST. El formato multiparte es simple; una breve introducción se puede encontrar en la especificación HTML 4.01 . Necesitas llegar a un límite, que es una cadena que no se encuentra en el contenido, digamos HereGoes
. Establece el encabezado de solicitud Content-Type: multipart/form-data; boundary=HereGoes
Content-Type: multipart/form-data; boundary=HereGoes
. Entonces este debería ser un cuerpo de solicitud válido:
--HereGoes
Content-Disposition: form-data; name="myJsonString"
Content-Type: application/json
{"foo": "bar"}
--HereGoes
Content-Disposition: form-data; name="photo"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
<...JPEG content in base64...>
--HereGoes--
Necesito recibir un HTTP Post Multipart que contiene solo 2 parámetros:
- Una cadena JSON
- Un archivo binario
¿Cuál es la forma correcta de configurar el cuerpo? Voy a probar la llamada HTTP usando la consola REST de Chrome, así que me pregunto si la solución correcta es establecer una clave "etiqueta" para el parámetro JSON y el archivo binario.
En el lado del servidor estoy usando Resteasy 2.x, y voy a leer el cuerpo Multipart de esta manera:
@POST
@Consumes("multipart/form-data")
public String postWithPhoto(MultipartFormDataInput multiPart) {
Map <String, List<InputPart>> params = multiPart.getFormDataMap();
String myJson = params.get("myJsonName").get(0).getBodyAsString();
InputPart imagePart = params.get("photo").get(0);
//do whatever I need to do with my json and my photo
}
¿Es este el camino a seguir? ¿Es correcto recuperar mi cadena JSON usando la clave "myJsonName" que identifica esa determinada disposición de contenido? ¿Hay alguna otra manera de recibir estos 2 contenidos en una sola solicitud HTTP multiparte?
Gracias por adelantado