У меня есть REST API, который обслуживает изображение в теле ответа при выполнении запроса GET к его URL. Пример ответа на Postman выглядит следующим образом:
Заголовки в ответе следующие:
Date →Fri, 24 Apr 2020 17:32:51 GMT
Server →WSGIServer/0.2 CPython/3.6.9
Content-Type →image/jpeg
Vary →Accept, Cookie
Allow →GET, POST, HEAD, OPTIONS
X-Frame-Options →DENY
Content-Length →161076
X-Content-Type-Options →nosniff
Я попытался сделать GET-запрос к этому API, используя код флаттера и затем напечатайте содержимое тела в ответе (просто чтобы посмотреть, как выглядит тело ответа. Я не уверен, что это правильный способ сделать это) со следующим кодом:
Future<void> getImage() async {
Directory directory = await getApplicationDocumentsDirectory();
String filePath = "${directory.path}/loginCreds.txt";
Map user_credentials = await this.getUserCreds(); //getUserCreds is another function in the same class
String auth_token = user_credentials['auth_token'];
Response res = await get(
"http://10.0.2.2:8000/usermgmt/profile/picture/",
headers: {
HttpHeaders.authorizationHeader: "Token $auth_token",
},
);
print('\n\n\n Image Response body');
print(res.body);
print("\n\n\n");
}
This дал следующий вывод:
I/flutter (11120):
I/flutter (11120):
I/flutter (11120):
I/flutter (11120): Image Response body:
I/flutter (11120): ÿØÿà
I/flutter (11120):
I/flutter (11120):
I/flutter (11120):
Как получить изображение из ответа на запрос GET и установить его в качестве изображения для CircleAvatar в build()
(используя setState()
в функции getImage()
в приведенном выше фрагменте кода), а также сохранить его в файловой системе?