cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ronald Partridge <r...@ronald-douglas.com>
Subject Android Cordova FileTransfer.upload generates 503 errors with some web servers.
Date Mon, 29 Oct 2012 18:56:47 GMT
See:
https://github.com/apache/incubator-cordova-android/blob/master/framework/src/org/apache/cordova/FileTransfer.java
private void upload(final String source, final String target, JSONArray args
, CallbackContext callbackContext)

Cordova Android may have a bug with the way files are being sent. The
Android source code appears to use the built in java HttpURLConnection and
the developer who wrote the functionality decided to write the logic to
assemble the post data to be transfered. I examined two different post dumps
being sent to a web server running Nginx and Varnish. Notice how the
headers are different between *iOS *and *Android*.
I would suggest using
http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/DefaultHttpClient.html

Here are the two post dumps:
*
Android:*

POST /service/claim/photo/75?api_key=123ab
c HTTP/1.1
Connection: Keep-Alive
Content-Type: multipart/form-data;boundary=*****
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.1; Nexus S Build/JRO03E)
Host: sit.service.app.mydomain.ca
Accept-Encoding: gzip
Transfer-Encoding: chunked

o<EF><8A>P9)^B^@6^@^@^@6^@^@^@^@^@^L^G<AC><C8>^@PV<8E>^A^@E^@^@(<E1>e@
^@@^F<DE>ESC^_[&c<88><B2>^@P<FF><BD>%&<9C><A5><AF>WĘP^P^Y
<E6>^^@^@o<EF><8A>P<93>,^B^@<D9>^D^@
^@<D9>^D^@^@^@^@^L^G<AC><C8>^@PV<8E>^A^@E^@^D<CB><E1>f@^@@^
F<DA>:<AC>ESC^_[&c<88><B2>^@P<FF><BD>%&<9C><A5><AF>WĘP^X^Y
^?I^@^@HTTP/1.1
503 Service Unavailable
Server: Varnish
Content-Type: text/html; charset=utf-8
Content-Length: 932
Accept-Ranges: bytes
Date: Fri, 26 Oct 2012 20:15:43 GMT
X-Varnish: 409357173
Age: 0
Via: 1.1 varnish
Connection: close
X-Cache: MISS


*iOS*:

POST /service/claim/photo/73?api_key=123abc HTTP/1.1

Host: sit.service.app.mydomain.ca
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X)
AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206
Content-Length: 139038
Accept: */*
Content-Type: multipart/form-data; boundary=*****org.apache.
cordova.formBoundary
X-Requested-With: XMLHttpRequest

Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive

4<EF><8A>P;^F^A^@6^@^@^@6^@^@^@^@^@^L^G<AC><C8>^@PV<8E>^A^@E^@^@(}1@
^@@^FC^S<AC>ESC^_[&c<88><B2>^@P<F7><8F><A1><F9><EB><CF>^^^_<C1>P^P^Y
^X`^@^@4<EF><8A>P<F7>^K^A^@
<9A>^E^@^@<9A>^E^@^@^@PV<8E>^A:^@^U<FA>~<E0>^Z^H^@E^@^E<8C><D7>C@
^@)^F<FA><9C>&c<88><B2><AC>ESC^_[<F7><8F>^@P^^^_<C1><
A1><F9><EB><CF>P^P<FF><FF><F9><A6>^@^@--*****org.apache.cordova.formBoundary
Content-Disposition: form-data; name="description"

Photo
--*****org.apache.cordova.formBoundary
Content-Disposition: form-data; name="userfile";
filename="cdv_photo_002.jpg"
Content-Type: image/jpeg
Content-Length: 138722



<http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/DefaultHttpClient.html>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message