Android HttpUrlConnection发布图像-内容长度应指什么?

Android HttpUrlConnection发布图像-内容长度应指什么?,android,httpurlconnection,image-uploading,http-status-codes,Android,Httpurlconnection,Image Uploading,Http Status Codes,我意识到这个问题类似于,但我认为我的情况不同,因为我试图发布一张图片 我正在从一个Android活动上传一个图像到服务器,在一些设备上上传时,我得到一个错误报告“411-Length required”。我不能在这里重现这个错误,但是一个用户在不同的国家在不同的设备上报告了这个错误,而我们能够在不同的设备上进行测试 我们在附加了几个参数的URL上打开HttpUrlConnection。这些是字符串和uuid。看起来是这样的: http://ourdomainname.net/OurMobileS

我意识到这个问题类似于,但我认为我的情况不同,因为我试图发布一张图片

我正在从一个Android活动上传一个图像到服务器,在一些设备上上传时,我得到一个错误报告“411-Length required”。我不能在这里重现这个错误,但是一个用户在不同的国家在不同的设备上报告了这个错误,而我们能够在不同的设备上进行测试

我们在附加了几个参数的URL上打开HttpUrlConnection。这些是字符串和uuid。看起来是这样的:

http://ourdomainname.net/OurMobileServices/ImageUploadhandler.ashx?filename=image20121220_120734_-901992324.jpeg&username=testusername&note=&uploadid=b4a1c35b-b869-4f7e-a645-6a4a180f0985&taskid=7f02deb8-c078-45c4-bc37-99e418e8cdf9
然后,我们使用getOutputStream获取一个OutputStream,并将图像文件字节写入其中

我一直在寻找有关411错误的信息,并在HttpUrlConnection对象上设置内容长度。似乎我可以将内容长度设置为请求属性,如下所示:

connection.setRequestProperty("Content-Length", String.valueOf(<mycomputedInt>));
其中包含内容长度编号

我的问题是:内容长度应该测量什么?是否指:

a) 包括参数的整个URL

b) URL编码参数

c) 我正在上载的图像的字节数组的长度

d) 图像字节数组的长度,以及URL编码的参数

e) 完全是别的吗


如果需要的话,我可以发布代码或更多细节——我只是对这一点很困惑,无法在本地重现错误。我可以从模拟器、手机和平板电脑上传图像。任何帮助都将不胜感激,谢谢

内容长度应该是您正在写入OutputStream的内容的长度。在这种情况下,答案是C


我认为HTTP请求的结构解释得非常清楚,您可能会发现它很有用。

谢谢!我想确认一下,我需要使用的字节数组的长度是多少?或者我必须先对它做些别的事情吗?字节数组的长度,是的。
connection.setFixedLengthStreamingMode()