我正在使用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)
不同。
怎么可能?
答案 0 :(得分:0)
您的服务器应该发送一个"关闭标题"所以客户端不会为他提供最终结果。
答案 1 :(得分:0)
也许您忘了用out.close();
关闭广告连播?