public override async void UploadImage() { string url = "https://sm.ms/api/upload"; HttpClient webHttpClient = new HttpClient(); HttpMultipartFormDataContent httpMultipartFormDataContent = new HttpMultipartFormDataContent(); var fileContent = new HttpStreamContent(await File.OpenAsync(FileAccessMode.Read)); fileContent.Headers.Add("Content-Type", "application/octet-stream"); httpMultipartFormDataContent.Add(fileContent, "smfile", File.Name); var str = await webHttpClient.PostAsync(new Uri(url), httpMultipartFormDataContent); ResponseString = str.Content.ToString(); Smms smms = JsonConvert.DeserializeObject <Smms>(ResponseString); if (smms != null) { if (smms.code == "success") { Url = smms.data.url; OnUploaded?.Invoke(this, true); } else { OnUploaded?.Invoke(this, false); } } else { OnUploaded?.Invoke(this, false); } }
/// <summary> /// 上传图片到 smms 网站 /// </summary> /// <exception cref="IOException"></exception> /// <exception cref="COMException">超时</exception> /// <returns></returns> public async Task <Smms> UploadImage() { const string url = "https://sm.ms/api/upload"; var webHttpClient = new HttpClient(); var httpMultipartFormDataContent = new HttpMultipartFormDataContent(); var fileContent = new HttpStreamContent(await StorageFile.OpenAsync(FileAccessMode.Read)); fileContent.Headers.Add("Content-Type", "application/octet-stream"); // 更多 userAgent 请看 win10 uwp 如何让WebView标识win10手机 https://lindexi.gitee.io/post/win10-uwp-%E5%A6%82%E4%BD%95%E8%AE%A9WebView%E6%A0%87%E8%AF%86win10%E6%89%8B%E6%9C%BA.html var userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"; webHttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent); httpMultipartFormDataContent.Add(fileContent, "smfile", StorageFile.Name); var response = await webHttpClient.PostAsync(new Uri(url), httpMultipartFormDataContent); var responseString = response.Content.ToString(); Smms smms = JsonConvert.DeserializeObject <Smms>(responseString); return(smms); }
public override async void UploadImage() { string url = "https://sm.ms/api/upload"; HttpClient webHttpClient = new HttpClient(); HttpMultipartFormDataContent httpMultipartFormDataContent = new HttpMultipartFormDataContent(); var fileContent = new HttpStreamContent(await File.OpenAsync(FileAccessMode.Read)); fileContent.Headers.Add("Content-Type", "application/octet-stream"); var userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"; webHttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent); httpMultipartFormDataContent.Add(fileContent, "smfile", File.Name); try { var str = await webHttpClient.PostAsync(new Uri(url), httpMultipartFormDataContent); ResponseString = str.Content.ToString(); } catch (Exception e) { Debug.WriteLine(e); OnUploaded?.Invoke(this, false); return; } Smms smms = JsonConvert.DeserializeObject <Smms>(ResponseString); if (smms != null) { if (smms.code == "success") { Url = smms.data.url; OnUploaded?.Invoke(this, true); } else { OnUploaded?.Invoke(this, false); } } else { OnUploaded?.Invoke(this, false); } }
public override async void UploadImage() { var smms = new Smms("wXfWIIbNHrZrL1kQeL4QqLgClD4OXZu7"); SmmsInfo smmsInfo = null; try { var str = await smms.UploadImage(await File.OpenStreamForReadAsync(), File.Name); ResponseString = str; smmsInfo = JsonConvert.DeserializeObject <SmmsInfo>(str); } catch (Exception e) { Debug.WriteLine(e); OnUploaded?.Invoke(this, false); return; } if (smmsInfo != null) { if (smmsInfo.Success) { Url = smmsInfo.Data.Url; OnUploaded?.Invoke(this, true); } else { OnUploaded?.Invoke(this, false); } } else { OnUploaded?.Invoke(this, false); } }