BadKeyError:无效的字符串键填充错误

时间:2012-03-22 16:57:58

标签: python google-app-engine

我正在使用标准的几行代码从http get请求中检索密钥并使用它从数据存储区获取内容,但遇到了我以前没有遇到过的问题。这只发生在实时(已部署)版本上 - 在开发服务器上运行代码时没有问题。

代码段:

  imgId = self.request.args.get("img_id")
  imageInfo = db.get(imgId)

错误示例:

    BadKeyError: Invalid string key  ahFjeWJlcm5hdXRzcHJvamVjdHINCxIFSW1hZ2UY1oYDDA=. Details: Incorrect padding

如果我在db.get之前记录imgId的值,它是正确的(没有从调试消息中附加“=”)。有谁知道可能导致这种情况的原因?

2 个答案:

答案 0 :(得分:7)

我在猜网址编码。 尝试:

imgId = urllib.unquote(self.request.args.get("img_id"))

也许是空格?
尝试:

imgId = urllib.unquote(self.request.args.get("img_id")).strip()

答案 1 :(得分:0)

如果不是网址编码,那么它可能与args变量有关。

如果是HTTP GET请求:

imgId = self.request.GET.get("img_id")
imageInfo = db.get(imgId)

如果是HTTP POST请求:

imgId = self.request.POST.get("img_id")
imageInfo = db.get(imgId)