示例#1
0
        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);
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
            }
        }