转发前修改请求参数

时间:2015-05-01 14:37:20

标签: python google-app-engine webapp2

在重定向之前,Google App Engine处理程序(Python - Webapp2)中是否有任何方法可以修改请求参数?

我实际上对更改已发布文件(multipart_encode)的竞争感兴趣。

例如:

class AnHandler(webapp2.RequestHandler):
     def post(self):
        inFile =  self.request.POST.multi['file'].file
        outFile = StringIO.StringIO()
        encrypt(inFile,outFile)
        upload_url = 'https://someurl'
        #now I need to switch inFile with outfile in self.request
        self.redirect(uri=upload_url,code=307)

随意提出任何替代方法,但考虑到GAE目前无法提供请求库

1 个答案:

答案 0 :(得分:2)

所以,当你说redirect时,我正在读作:

  

您希望将修改后的请求转发给其他端点或服务器。您实际上并没有想要重定向用户。

我不确定你是否能做出问题所在的问题。当服务器发回重定向时,它指定一个Location标头,客户端随后转到该标头。你绝对可以告诉客户端转到另一个URI,但我认为你不能修改它的请求并告诉它使用新的请求。

为什么不保持简单并使用像requests之类的模块将修改后的请求发送到另一个端点,然后将该请求的响应返回给客户端?

  

随意提出任何替代方法,但考虑到GAE目前无法提供请求库

除了修改问题之外,您应该评论我的答案。编辑问题时,我不会收到通知。

话虽如此,请随意使用urlliburllib3代替requests。这个想法仍然是一样的,只是一个不同的图书馆。