我无法将一串字节(图像)发送到我的后端。
在我的代码中,我有:
# sends a httplib2.Request
backend_resp, backend_content = self.mirror_service._http.request(
uri=backend_path,
body=urllib.urlencode({"img":content}))
这会发送一个请求,其中content
是一大串字节。
在我的后端我有:
class Handler(webapp2.RequestHandler):
def get(self):
image_bytes = self.request.get("img")
logging.info(image_bytes) # output is empty string
其中记录了一个空字符串。
我也试过
image_bytes = self.request.body
只是body = content
在请求中设置,但这些也没有返回
我知道后端正在接收请求,因为后端日志中有我放置的消息。
发送和检索我的 GET 数据的正确方法是什么?
编辑:
这是content
尝试将其发送到我的后端之前的日志:
logging.info(str(type(content)))
# returns <type 'str'>
logging.info(content)
# logs a long string of bytes
另一方面,我在发送请求时也在日志中收到此警告,但我不确定如何解决它:
new_request() takes at most 1 positional argument (2 given)
我猜这个警告意味着它需要的 1 个位置参数是path=
,它忽略了我的body=
论点。我认为(3 given)
如果我添加method="POST"
或method="GET"
我也尝试使用 POST 方法,但logging.info
不会显示在我的日志中。我尝试只写self.request.body
或self.request.get('img')
返回响应,它仍然只返回一个空字符串,如 GET 方法。