我意識到這個問題類似於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