самый эффективный метод - использовать android-async-http
Вы можете использовать этот код для загрузки файла:
// gather your request parameters
File myFile = new File("/path/to/file.png");
RequestParams params = new RequestParams();
try {
params.put("profile_picture", myFile);
} catch(FileNotFoundException e) {}
// send request
AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] bytes) {
// handle success response
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] bytes, Throwable throwable) {
// handle failure response
}
});
Обратите внимание, что вы можете поместить этот код непосредственно в основное задание, не нужно явно создавать фоновое задание. AsyncHttp позаботится об этом за вас!