Androidアプリを使用して、base64でエンコードされた文字列をCherryPyサーバーに送信しています。 Androidのコードは次のように動作します:受信した長さが送信された長さと異なる
URL url = new URL("http://foo.bar/blabla");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "application/octet-stream");
conn.setDoOutput(true);
conn.setFixedLengthStreamingMode(base64s.length());
OutputStream out = new BufferedOutputStream(conn.getOutputStream());
out.write(base64s.getBytes());
だから、あなたが送信したバイトの量がContent-Length
ヘッダ内のバイトの量に等しいと思います。私はこの実行したときただし、Pythonで、:
cl = cherrypy.request.headers['Content-Length']
rawbody = cherrypy.request.body.read()
print "{} bytes, {}".format(len(rawbody), cl)
を数字cl
とlen(rawbody)
は異なっています。
どのようにすることができますか?
値は何ですか?そして、送信されたバイト数は? – greenapps
忘れてしまった.close();? – greenapps
@greenappsそれは確かにそれでした。あなたがそれを答えたら、私はそれを受け入れるでしょう。 –