Я создаю приложение которое посылает разные запросы на сервер при помощи retrofit. Одним из таких запросов есть запрос на прикрепленный к письму файл. Вот я прописал этот запрос в интерфейсе:
@Headers({"Content-type:application/json"})
Call<FileData> getAttach(@Header("Authorization") String token, @Path("id") Integer id, @Path("attach_file_name") String file_name, @Query("type") int type);
Вот класс FileData который используется в запросе:
public class FileData {
@SerializedName("size")
@Expose
private double size;
@SerializedName("name")
@Expose
private String name;
public FileData(double size, String name) {
this.size = size;
this.name = name;
}
public double getSize() {
return Math.round(size * 100.0) / 100.0;
}
public String getName() {
return name;
}
}
и дальше вот я шлю запрос в классе:
mAPIService.getAttach("Bearer " + access_token, id, name, ty_pe).enqueue(new Callback<FileData>() {
@Override
public void onResponse(@NonNull Call<FileData> call, @NonNull Response<FileData> response) {
if(response.isSuccessful())
{
}
}
@Override
public void onFailure(@NonNull Call<FileData> call, @NonNull Throwable t) {
}
});
и вот несколько примеров как мне приходит в ответе прикрепленный файл:
картинка:
200 OK https://сервер/v1/message/1303758/attachment/575b3981-4372-4104-98f3-a9eee386a0d5.jpg?type=1 (215ms)
Content-Length: 107625
Content-Disposition: attachment; filename="575b3981-4372-4104-98f3-a9eee386a0d5.jpg"
P3P: policyref="/w3c/p3p.xml", CP="NOI ADM DEV COM NAV OUR STP"
08-27 11:17:01.040 D: Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: image/jpeg
или вот пустой текстовый документ:
200 OK https://сервер/v1/message/1303651/attachment/%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.txt?type=1 (224ms)
Content-Disposition: attachment; filename="Новый текстовый документ.txt"
Vary: Accept-Encoding
P3P: policyref="/w3c/p3p.xml", CP="NOI ADM DEV COM NAV OUR STP"
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset=utf-8
если в документе например есть какой-то текст, то в ответе соответственно приходит тот текст который есть в документе.
Я не могу понять как сохранять любой формат дока а не только текст. Картинку например, или архив (за архив я вообще не понимаю как это будет происходить), ссылку html. Название худо-бедно можно вытащить из запроса, или из ответа, размер необязательно, но вот как создать новый файл с нужным мне расширением и с правильным содержимым. Если кто-то занимался подобного рода разработкой, то я буду очень благодарен за полезные советы и любую информацию.