我意识到这个问题类似于this one,但我认为我是一个不同的案例,因为我试图张贴图像。Android HttpUrlConnection发布图片 - 内容长度指的是什么?
我从Android活动将图像上传到服务器,并且在某些设备上上传时收到“411 - 需要的长度”错误报告。我无法在这里重现错误,但用户在与我们可以在不同国家/地区进行测试的设备报告过此错误。
我们在一个带有几个参数的URL上打开一个HttpUrlConnection。这些是字符串和UUID。它看起来像这样:
http://ourdomainname.net/OurMobileServices/ImageUploadhandler.ashx?filename=image20121220_120734_-901992324.jpeg&username=testusername¬e=&uploadid=b4a1c35b-b869-4f7e-a645-6a4a180f0985&taskid=7f02deb8-c078-45c4-bc37-99e418e8cdf9
然后我们使用的getOutputStream得到一个OutputStream,这是我们写的图像文件的字节。
我一直在寻找有关411错误和设置HttpUrlConnection对象的内容长度的信息。好像我可以设置内容长度的请求属性的东西,如:在那里
connection.setFixedLengthStreamingMode()
随着内容长度数:
connection.setRequestProperty("Content-Length", String.valueOf(<mycomputedInt>));
或者,我可以使用。
我的问题是:内容长度应该测量什么?是指:
a)整个URL包含参数?
b)URL编码参数?
c)我上传的图像的字节数组的长度?
d)图像字节数组的长度和URL编码参数? e)其他完全不同的东西?
如果需要,我可以发布代码或更多细节 - 我只是很困惑这一个,并且无法在本地重现错误。我可以很好地从模拟器,手机和平板电脑上传图像。任何帮助将不胜感激,谢谢。
谢谢!只是为了确认,是否需要使用字节数组的长度?或者我必须先用其他方法做些什么? – breadbin
字节数组的长度,是的。 – 1615903
谢谢,这工作完美。 – breadbin