Entonces, hay una API REST que se usa para migrar algunos datos en formato .zip. La API responde a las solicitudes GET con el contenido de bytes del archivo solicitado. Uso Postman para realizar las solicitudes con el fin de automatizar el proceso de migración.
Necesito guardar la respuesta del byte sin tener que hacer clic en "enviar y descargar", ya que necesito enviar varias solicitudes y guardar dinámicamente todos los archivos.
Hice varios intentos:
pm.collectionVariables.set('file', responseBody) y luego publíquela en un servidor local que lee los datos y los guarda en un archivo. Esto da como resultado un archivo zip no válido.btoa() , guarde la cadena codificada en una variable de colección y luego PUBLIQUE la cadena codificada en base64 a un servidor local (python) y decodifique con base64.b64decode(data) . Nuevamente, después de escribir los datos en un archivo (en formato binario, por supuesto), esto da como resultado otro archivo zip no válido.Si hago clic en "guardar y descargar" en la GUI del cartero, puedo guardar con éxito el archivo zip que es válido. Por lo tanto, la API seguramente responde con un contenido binario válido.
Sé que Postman usa javascript y en mi servidor local uso python y la combinación no es óptima, pero la codificación base64 es universal, ¿verdad?
Información adicional que podría ser útil: la API responde con Content-Type: "application/octet-stream; charset=UTF-8" y Content-Disposition: attachment; filename="webseal_config.zip"; filename*=UTF-8''webseal_config.zip . Realmente no entiendo las consecuencias prácticas del último encabezado, ¿tal vez la respuesta no solo contiene el contenido binario sino también el nombre del archivo y tengo que procesar los datos de alguna manera?