Junior — Middle
What methods of file transfer do you know for sending data to a server?
sobes.tech AI
Answer from AI
To transfer files to a server in Android, the following methods are usually used:
-
HTTP POST with multipart/form-data — the most common way, where the file is sent as part of a form. Libraries like Retrofit with OkHttp are often used for this.
-
WebSocket — for real-time file transfer, for example, in chats.
-
FTP/SFTP — file transfer protocols, used less frequently, require separate implementation.
-
Upload via cloud SDKs — for example, Firebase Storage, Amazon S3 SDK, which provide their own methods for uploading files.
Example of sending a file using Retrofit and multipart:
val file = File("path/to/file")
val requestFile = file.asRequestBody("image/jpeg".toMediaTypeOrNull())
val body = MultipartBody.Part.createFormData("file", file.name, requestFile)
val call = apiService.uploadFile(body)
call.enqueue(object : Callback<ResponseBody> {
override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
// handle successful response
}
override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
// handle error
}
})
The choice of method depends on the requirements for speed, reliability, and server infrastructure.