【问题标题】:webapp2 - blobstore or request.get adding =\r\n every 75 chars for long parameters?webapp2 - blobstore 或 request.get 每 75 个字符添加 =\r\n 以获取长参数?
【发布时间】:2012-11-02 12:07:23
【问题描述】:

我有一个 iOS 应用,除了通过 blobstore url 向我的 App Engine 实例发送图像外,它还发送相当大的 JSON POST 参数(几百个字符长)。

由于某种原因,self.request.get('foo') 返回的 JSON 字符串每 76 个字符插入一次回车(即十进制值为 13 的字符)。这导致 JSON 解析器抛出有关控制字符的错误。为什么会发生这种情况,有没有办法阻止它?

我相当确定我的应用没有添加这些字符,因为我使用代理检查 HTTP 请求并且 JSON 字符串的格式正确。

谢谢!

编辑:

我发现它实际上每 75 个字符添加一次 =\r\n,这导致我进入另一个 SO 问题,其中包含指向 App Engine 的 blobstore 中的错误的指针。

这是一个副本(除了它在 webapp2 而不是 django 中):Data gets corrupted on form send, =\r\n introduced in the data every 75 characters?

解决方法在:Encoding problem in app engine when submitting multipart/form-data forms

【问题讨论】:

    标签: google-app-engine blobstore webapp2


    【解决方案1】:

    此问题已通过 webob 1.2.3 修复,将在下一个 App Engine 版本:1.7.4 中提供

    与此同时,您可以将 webob 1.2.3 与您的应用程序一起部署,方法是将其发布 tarball 中包含的 webob 子目录复制到您的应用程序目录。

    【讨论】:

    • 这行得通,但另外我不得不改用self.request.POST.get 而不是self.request.get,因为后者仍然有问题。
    猜你喜欢
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多