niedziela, maja 20, 2012

Nie kijem go to pałką ;-) czyli resumable upload do Google Docs z Androida i jak uniknąć 411 Length Required :-)

W skrócie jest tak.
W API 3.0 do Google Docs pliki wysyła się (czy to po raz pierwszy, czy po to by je zupdatować) w kawałkach.
Najpierw pod specjalny adres wysyła się info o pliku, serwer zwraca lokalizację gdzie trzeba wszystko wysyłać.

Taka jest teoria. I w większości miejsc się sprawdza ;-)

Ale nie w Androidzie. Tutaj po wysłaniu PUT do pierwszego adresu zamiast lokalizacji przychodzi błąd 411 Length Required.

Czemu?

Bo w niektórych wersjach Androida był błąd powodujący, że ustawienie Content-Length na 0 sprawiało, że ten nagłówek nie był ustawiany...... [co najlepsze czasami].
Walczyłem, szukałem po sieci i nic.
Na PC działa, na Androidzie 1.6 nie działa. Na 2.2 działa......

I w końcu znalazłem rozwiązanie ;-)
Skoro Content-Length nie jest dodawane gdy jest równe 0 to może by ustawić je na 1 i wysłać w tym pierwszym requeście dokładnie 1 bajt? :-)
Spróbowałem i działa :-)


Podobne postybeta
Naprawdę uwielbiam...
Ha! Ochidna Echidna potrafi updatować pliki :-)
iCloud jest podły....
DVD BtVS sezon 2
SwiftKey Flow wrażenia