Cześć, mam problem z pobraniem obrazka z webapi:
Serwer:
IMToken: 123123123 uin: 123 user-agent:...
Returns an unpackaged image with a heading Content-type: image/png
Nagłówek który dostaję :
Cache-Control: public, max-age=86400
Connection: Keep-Alive
Date: Fri, 30 Nov 2018 1208 GMT
Keep-Alive: timeout=5, max=99
OkHttp-Received-Millis: 1543581128745
OkHttp-Selected-Protocol: http/1.1
OkHttp-Sent-Millis: 1543581128514 Server: Apache/2.4.33 (Amazon) OpenSSL/1.0.2k-fips PHP/7.0.30 X-Powered-By: PHP/7.0.30
Content-Length: 26190
Content-Type: image/png
Keep-Alive: timeout=5, max=99
OkHttp-Received-Millis: 1543581128745
OkHttp-Selected-Protocol: http/1.1
OkHttp-Sent-Millis: 1543581128514
X-Powered-By: PHP/7.0.30
klasa menager odpowiedzialna z pobranie obrazka:
public async Task<Image> GetAvatar(string dpi, Int64 uin)
{
var response = await BasicRequestAsync(string.Format(AVATAR_URL, dpi, uin), HttpMethod.Get, true, null, null, false);
if (response == null)
return null;
var stream = await response.Content.ReadAsByteArrayAsync();
Image image = new Image();
image.Source = ImageSource.FromStream(() => new MemoryStream(stream));
return image;
}
cześć klasy ViewModel:
private Image _avatarImage;
public Image AvatarImage
{
get => _avatarImage;
set
{
if(_avatarImage == value) return;
_avatarImage = value;
OnPropertyChanged();
}
}
#endregion
#region Methods
public AvatarPageViewModel(INavigation navigation) : base(navigation)
{
InitializeAvatarData();
}
private async void InitializeAvatarData()
{
if (AvatarItems == null)
{
AvatarItems = new ObservableCollection<AvatarModel>();
var AvatarImage = await AvatarManagerInstance.GetAvatar(DependencyService.Get<IDisplayInfo>().GetDisplayDpi(), 2);
var list = await AvatarManagerInstance.GetAvatars(DependencyService.Get<IDisplayInfo>().GetDisplayDpi());
if (list == null) return;
AvatarItems.Clear();
AvatarItems.AddRange(list);
}
}