shouldDownloadAsText corrupts ZIP responses when content-type defined as json or xml is followed by a delimiter (e.g. json-zip)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 84/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript
Línea de trabajo
Empieza por src/http/serializers/response/index.js, donde el issue indica que los tipos de medios de las respuestas se clasifican como texto, e inspecciona cómo se realiza la coincidencia del tipo de contenido. Añade casos de regresión para los tipos de medios JSON/XML y de archivo enumerados, y verifica que una respuesta ZIP conserve sus bytes originales. Se considera terminado cuando los documentos JSON/XML sigan siendo texto y los tipos ZIP enumerados se procesen como binarios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
We are experiencing corrupted ZIP downloads when using swagger-client. The issue appears to originate in
A binary response is treated as text when its media type contains json or xml, even if those strings describe files inside an archive rather than the response body itself.
Minimal reproduction
Return a valid ZIP archive with these headers:
HTTP/1.1 200 OK
Content-Type: application/vnd.sdmx.data+json-zip;version=1.0.0
Content-Disposition: attachment; filename="result.zip"
The response body contains valid ZIP bytes for an archive containing one or more JSON files.
Requesting this endpoint through swagger-client causes the response to be processed as text because the media type contains json.
Expected behavior
The response is handled as binary data, and its bytes remain unchanged.
Actual behavior
The response is decoded as text, resulting in a corrupted ZIP archive.
The same issue can affect other archive media types containing json or xml, for example:
application/vnd.sdmx.genericdata+xml-zip;version=2.1
application/vnd.software602.filler.form-xml-zip
Possible fix
Restrict text detection to media types that actually represent JSON or XML documents, or remove the delimiter as the end of the match.
Suggested regression cases:
application/json -> text
application/problem+json -> text
application/xml -> text
application/atom+xml -> text
application/vnd.sdmx.data+json-zip;version=1.0.0 -> binary
application/vnd.sdmx.genericdata+xml-zip;version=2.1 -> binary
application/vnd.software602.filler.form-xml-zip -> binary
application/zip -> binary
A regression test should also verify that binary response bytes remain unchanged.
- Lenguaje dominante
- JavaScript
- Estrellas
- 2.7k
- Forks
- 764
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 8
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de swagger-api/swagger-client
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
swagger-api/swagger-client#4316 ·
Los mantenedores suelen responder en 1 día
-
Remove `@scarf/scarf` dependencyAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
swagger-api/swagger-client#4212 · 4 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
swagger-api/swagger-client#4298 · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
swagger-api/swagger-client#4233 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
swagger-api/swagger-client#4223 ·
Los mantenedores suelen responder en 1 día
Todos los issues de swagger-api/swagger-client
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
swc-project/swc-ai-issues#414 ·
-
[workshop-sim] Repair: Make Copilot access and billing path decision self-contained in Steps 07/07dAbiertofeedback simulation workshop
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
githubnext/gh-aw-workshop#5597 ·
Los mantenedores suelen responder en 1 día
-
Add: Film Mania PLAbiertocheck:passed feeds:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Disabled radio toggle button groups lose checked statePosiblemente ocupada @vladosskins178 la tomó hoy. Abiertobug confirmed css has-pr v6
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día