バイト文字列 (画像) をバックエンドに送信できません。
私のコードには次のものがあります。
# 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 メソッドのように空の文字列が返されます。