2

我意識到這個問題類似於this one,但我認爲我是一個不同的案例,因爲我試圖張貼圖像。Android HttpUrlConnection發佈圖片 - 內容長度指的是什麼?

我從Android活動將圖像上傳到服務器,並且在某些設備上上傳時收到「411 - 需要的長度」錯誤報告。我無法在這裏重現錯誤,但用戶在與我們可以在不同國家/地區進行測試的設備報告過此錯誤。

我們在一個帶有幾個參數的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.setFixedLengthStreamingMode() 

隨着內容長度數:

connection.setRequestProperty("Content-Length", String.valueOf(<mycomputedInt>)); 

或者,我可以使用。

我的問題是:內容長度應該測量什麼?是指:

a)整個URL包含參數?

b)URL編碼參數?

c)我上傳的圖像的字節數組的長度?

d)圖像字節數組的長度和URL編碼參數? e)其他完全不同的東西?

如果需要,我可以發佈代碼或更多細節 - 我只是很困惑這一個,並且無法在本地重現錯誤。我可以很好地從模擬器,手機和平板電腦上傳圖像。任何幫助將不勝感激,謝謝。

回答

2

Content-Length應該是您寫入OutputStream的任何內容的長度。所以在這種情況下,答案是C.

我認爲this site很清楚地解釋了HTTP請求的結構,您可能會發現它很有幫助。

+0

謝謝!只是爲了確認,是否需要使用字節數組的長度?或者我必須先用其他方法做些什麼? – breadbin

+0

字節數組的長度,是的。 – 1615903

+0

謝謝,這工作完美。 – breadbin

相關問題