/// <summary> /// 上传图片 /// </summary> /// <param name="url"></param> /// <param name="file"></param> /// <returns></returns> private async Task <ModifyAvatarResult> UploadImage(string url, StorageFile file) { try { using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", "Bearer " + DataShareManager.Current.User.AccessToken); client.DefaultRequestHeaders.Add("Connection", "Keep-Alive"); client.DefaultRequestHeaders.Add("User-Agent", "(Linux; Android 5.0.2; vivo X5M Build/vivo/PD1401CL/PD1401CL/LRX22G/zh_CN)"); using (var content = new MultipartFormDataContent("TLq-mXb4y62pbCa_bPiNZXitxUS3RV29c8")) { var imageContent = new StreamContent(await file.OpenStreamForReadAsync()); string boundary = Guid.NewGuid().ToString(); content.Headers.Add("ContentType", "multipart/form-data; boundary=TLq-mXb4y62pbCa_bPiNZXitxUS3RV29c8"); if (file.Name.EndsWith(".jpg")) { content.Add(imageContent, "avatar", "avatar.jpg"); content.Headers.TryAddWithoutValidation("ContentType", "jpg:image/jpg"); } else if (file.Name.EndsWith(".png")) { content.Add(imageContent, "avatar", "avatar.png"); content.Headers.TryAddWithoutValidation("ContentType", "png:image/png"); } content.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("form-data; name='avatar'; filename='" + file.Name + "'"); var result = await client.PostAsync(new Uri(url), content); var resContent = await result.Content.ReadAsByteArrayAsync(); string json = Encoding.UTF8.GetString(resContent); ModifyAvatarResult avatarResult = JsonHelper.Deserlialize <ModifyAvatarResult>(json); return(avatarResult); } } } catch (Exception e) { LogHelper.WriteLine(e); return(null); } }
/// <summary> /// 修改头像 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public async void ModifyAvatar(object sender, TappedRoutedEventArgs e) { FileOpenPicker picker = new FileOpenPicker(); picker.FileTypeFilter.Add(".jpg"); picker.FileTypeFilter.Add(".png"); picker.FileTypeFilter.Add(".bmp"); StorageFile file = await picker.PickSingleFileAsync(); if (file != null) { ModifyAvatarResult result = await UploadImage(ServiceUri.UploadAvatar, file); if (result != null) { User.Avatar = result.Avatar; ToastService.SendToast("头像更新成功"); } } }