There are several questions discussing ways in which progress indication can be added to HTTP file uploads in Android using the multipart/form-data data format. The typical approach suggested is epitomized by the top answer in Can't grab progress on http POST file upload (Android) -- include the MultipartEntity class from the full Apache HTTPClient library, and then wrap the input stream it uses to get data in one that counts bytes as they're read.
This approach works for this case, but unfortunately does not work for requests sending data via UrlEncodedFormEntity, which expects its data to be passed to it in Strings rather than InputStreams.
So my question is, what approaches are available to determine progress for uploads via this mechanism?