Python Flask "make_response" de la cadena

CorePress2023-11-30  1

Tengo una cadena que contiene una respuesta específica. Por ejemplo:

b'HTTP/1.0 302 Redirect\r\nServer: Http Server\r\nDate: Sun Jun  7 12:53:19 2020\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Type: text/html\r\nLocation: http://192.168.3.1/main.html\r\n\r\n<html><head></head><body>\r\n\t\tThis document has moved to a new <a href="http://192.168.3.1/main.html">location</a>.\r\n\t\tPlease update your documents to reflect the new location.\r\n\t\t</body></html>\r\n\r\n'

Y quiero crear y devolver la respuesta a partir de esto. ¿Hay alguna manera de hacer eso con una función Flask?

Ya probé la función make_response como tal, devuelve make_response(my_string) pero devuelve:

HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 383
Server: Werkzeug/1.0.1 Python/3.6.9
Date: Sun, 07 Jun 2020 12:32:05 GMT

HTTP/1.0 302 Redirect
Server: Http Server
Date: Sun Jun  7 12:53:19 2020
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
Location: http://192.168.3.1/main.html

<html><head></head><body>
        This document has moved to a new <a href="http://192.168.3.1/main.html">location</a>.
        Please update your documents to reflect the new location.
        </body></html>

Gracias.

  • No entiendo lo que preguntas. ¿Por qué esa respuesta es incorrecta? -roganjosh 7 de junio de 2020 a las 12:46
  • HTTP/1.0 200 OK en lugar de HTTP/1.0 302 Redirect, la pregunta es sobre el uso de una función para convertir una cadena en una respuesta en lugar de crear una respuesta y proporcionar la cadena como cuerpo -Nitescu Lucian 7 de junio de 2020 a las 12:50


------------------------

No creo que esto sea posible de forma sencilla con flask.

Tiene una respuesta HTTP sin procesar que contiene todos los encabezados de respuesta y el contenido HTTP en una cadena.

el matraz es una wLa aplicación sgi devuelve los encabezados y la respuesta en campos separados y permite que el servidor wsgi combine ambos.

En teoría, podría intentar analizar la cadena, dividirla en campos principales y contenidos, devolverla y dejar que el servidor wsgi la recombine en una cadena. (potencialmente podrías usar bibliotecas como solicitudes e intentar parchearlas o simularlas para que haga el análisis por ti)

Pero esto parece un gran mosaico y no lo recomendaría.

Quizás puedas explicar el contexto más amplio y podríamos encontrar una solución que haga lo que quiere, aunque probablemente no convertirá una cadena en una respuesta de matraz que será devuelta por el servidor wsgi.

¿De dónde obtuviste/obtuviste la cadena? ¿No pudiste recibirla ya como una respuesta HTTP analizada?

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare