Example #1
0
        public string CreateNote(string content, string title = "", string author = "", string notebook = "", string source = "", long createTime = 0)
        {
            var url = "https://note.youdao.com/yws/open/note/create.json?oauth_token=" + _accessToken;

            var postData = new PostData();
            postData.Params.Add(new PostDataParam("content", content, PostDataParamType.Field));

            if (!string.IsNullOrEmpty(source))
            {
                postData.Params.Add(new PostDataParam("source", source, PostDataParamType.Field));
            }
            if (!string.IsNullOrEmpty(author))
            {
                postData.Params.Add(new PostDataParam("author", author, PostDataParamType.Field));
            }
            if (!string.IsNullOrEmpty(title))
            {
                postData.Params.Add(new PostDataParam("title", title, PostDataParamType.Field));
            }
            if (0 != createTime)
            {
                postData.Params.Add(new PostDataParam("create_time", createTime.ToString(), PostDataParamType.Field));
            }
            if (!string.IsNullOrEmpty(notebook))
            {
                postData.Params.Add(new PostDataParam("notebook", notebook, PostDataParamType.Field));
            }
            var requestResult = HttpUtils.SendPostRequestWithMultipart(url, _accessToken, postData);

            if (requestResult.OperateResult == OperateResultEnum.Fail)
                throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
            var jObject = JsonConvert.DeserializeObject(requestResult.Result, typeof(JObject)) as JObject;
            return (jObject != null) ? jObject["path"].ToString() : string.Empty;
        }
Example #2
0
        private void btnSendFeedback_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(tbFeedback.Text.Trim()) || tbFeedback.Text.Trim() == "请在此写下您的反馈意见……")
            {
                Toast.Prompt("额,请先填写反馈意见!");
                tbFeedback.Focus();
                return;
            }
            var feedback = new StringBuilder();
            feedback.AppendLine("反馈内容:" + tbFeedback.Text.Trim());
            feedback.AppendLine("用户邮箱地址:" + UserEmail);
            feedback.AppendLine("用户 QQ:" + UserQq);

            btnSendFeedback.IsEnabled = false;
            btnGoHome.IsEnabled = false;
            progressBar.Tip = "正在发送中...";
            progressBar.Visibility = Visibility.Visible;
            Task.Factory.StartNew(() =>
            {
                try
                {
                    const string url = ""; // 此处填写接收反馈信息的网址
                    var postData = new PostData();
                    postData.Params.Add(new PostDataParam("feedback", feedback, PostDataParamType.Field));

                    var reqResult = HttpUtils.SendPostRequest(url, postData);

                    Dispatcher.BeginInvoke(() =>
                                {
                                    if (reqResult.OperateResult == OperateResultEnum.Success)
                                    {
                                        Toast.Prompt("已发送反馈意见!");
                                    }
                                    else
                                    {
                                        LoggerFactory.GetLogger().Error("发送反馈意见失败:" + reqResult.ErrorMsg);
                                        Toast.Prompt("额,发送反馈意见失败,请稍后重试!");
                                    }
                                });
                }
                catch (Exception ex)
                {
                    LoggerFactory.GetLogger().Error("发送反馈意见失败", ex);
                    Toast.Prompt("额,发送反馈意见失败,请稍后重试!");
                }
                finally
                {
                    Dispatcher.BeginInvoke(() =>
                        {
                            progressBar.Visibility = Visibility.Collapsed;
                            btnSendFeedback.IsEnabled = true;
                            btnGoHome.IsEnabled = true;
                        });
                }
            });
        }
Example #3
0
        public Notebook CreateNotebook(string name)
        {
            var url = "https://note.youdao.com/yws/open/notebook/create.json?oauth_token=" + _accessToken;

            var postData = new PostData();
            postData.Params.Add(new PostDataParam("name", name, PostDataParamType.Field));

            var requestResult = HttpUtils.SendPostRequest(url, postData);

            if (requestResult.OperateResult == OperateResultEnum.Success)
            {
                return JsonConvert.DeserializeObject(requestResult.Result, typeof(Notebook)) as Notebook;
            }
            throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
        }
Example #4
0
        public void DeleteNote(string path, long modifyTime = 0)
        {
            var url = "https://note.youdao.com/yws/open/note/delete.json?oauth_token=" + _accessToken;

            var postData = new PostData();
            postData.Params.Add(new PostDataParam("path", path, PostDataParamType.Field));
            if (0 != modifyTime)
            {
                postData.Params.Add(new PostDataParam("modify_time", modifyTime.ToString(), PostDataParamType.Field));
            }
            var requestResult = HttpUtils.SendPostRequest(url, postData);

            if (requestResult.OperateResult == OperateResultEnum.Fail)
            {
                throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
            }
        }
Example #5
0
        internal static void ReportErrorAsync(string body)
        {
            Task.Factory.StartNew(() =>
                {
                    try
                    {
                        const string url = "填写错误日志接收页面网址";
                        var postData = new PostData();
                        postData.Params.Add(new PostDataParam("body", body, PostDataParamType.Field));

                        var reqResult = HttpUtils.SendPostRequest(url, postData);

                        if (reqResult.OperateResult == OperateResultEnum.Success)
                        {
                            LoggerFactory.GetLogger().SafeDeleteFile();
                        }
                    }
                    catch
                    {
                        // ignored
                    }
                });
        }
Example #6
0
        public string UploadImage(string filepath)
        {
            var url = "https://note.youdao.com/yws/open/resource/upload.json?oauth_token=" + _accessToken;

            var postData = new PostData();

            // Read file data
            var data = IsoStoreUtil.ReadFileAsByte(filepath);

            var filename = FileUtils.GetFileName(filepath);
            postData.Params.Add(new PostDataParam(filename, data, filepath, PostDataParamType.File));

            var requestResult = HttpUtils.SendPostRequestWithMultipart(url, _accessToken, postData);

            if (requestResult.OperateResult == OperateResultEnum.Fail)
                throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
            var jObject = JsonConvert.DeserializeObject(requestResult.Result, typeof(JObject)) as JObject;
            return jObject != null ? jObject["url"].ToString() : string.Empty;
        }
Example #7
0
        public UploadAttachResult UploadAttach(string filepath)
        {
            var url = "https://note.youdao.com/yws/open/resource/upload.json?oauth_token=" + _accessToken;

            var postData = new PostData();

            // Read file data
            var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
            var data = new byte[fs.Length];
            fs.Read(data, 0, data.Length);
            fs.Close();

            var filename = FileUtils.GetFileName(filepath);
            postData.Params.Add(new PostDataParam(filename, data, filepath, PostDataParamType.File));

            var requestResult = HttpUtils.SendPostRequestWithMultipart(url, _accessToken, postData);

            if (requestResult.OperateResult == OperateResultEnum.Success)
            {
                return JsonConvert.DeserializeObject(requestResult.Result, typeof(UploadAttachResult)) as UploadAttachResult;
            }
            throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
        }
Example #8
0
        public void UpdateNote(string path, string content, string source = "", string author = "", string title = "", long modifyTime = 0)
        {
            var url = "https://note.youdao.com/yws/open/note/update.json?oauth_token=" + _accessToken;

            var postData = new PostData();
            postData.Params.Add(new PostDataParam("path", path, PostDataParamType.Field));
            if (!string.IsNullOrEmpty(source))
            {
                postData.Params.Add(new PostDataParam("source", source, PostDataParamType.Field));
            }
            if (!string.IsNullOrEmpty(author))
            {
                postData.Params.Add(new PostDataParam("author", author, PostDataParamType.Field));
            }
            if (!string.IsNullOrEmpty(title))
            {
                postData.Params.Add(new PostDataParam("title", title, PostDataParamType.Field));
            }
            postData.Params.Add(new PostDataParam("content", content, PostDataParamType.Field));
            if (0 != modifyTime)
            {
                postData.Params.Add(new PostDataParam("modify_time", modifyTime.ToString(), PostDataParamType.Field));
            }

            var requestResult = HttpUtils.SendPostRequestWithMultipart(url, _accessToken, postData);

            if (requestResult.OperateResult == OperateResultEnum.Fail)
            {
                throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
            }
        }
Example #9
0
        public string ShareNote(string path)
        {
            var url = "https://note.youdao.com/yws/open/share/publish.json?oauth_token=" + _accessToken;

            var postData = new PostData();
            postData.Params.Add(new PostDataParam("path", path, PostDataParamType.Field));

            var requestResult = HttpUtils.SendPostRequest(url, postData);

            if (requestResult.OperateResult == OperateResultEnum.Fail)
                throw new YoudaoNoteException(requestResult.Code, requestResult.ErrorMsg);
            var jObject = JsonConvert.DeserializeObject(requestResult.Result, typeof(JObject)) as JObject;
            return jObject != null ? jObject["url"].ToString() : string.Empty;
        }
Example #10
0
        public static RequestResult<string> SendPostRequestWithMultipart(string url, string accessToken, PostData postData)
        {
            var result = new RequestResult<string>();

            try
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

                var boundary = String.Format("----------{0:N}", Guid.NewGuid());

                httpWebRequest.ContentType = "multipart/form-data;boundary=" + boundary;
                httpWebRequest.Method = "POST";
                httpWebRequest.Headers["Authorization"] = "OAuth oauth_token=\"" + accessToken + "\"";
                var byteRequest = postData.GetPostDataWithMultipart(boundary);
                httpWebRequest.ContentLength = byteRequest.Length;

                httpWebRequest.AllowReadStreamBuffering = true;

                var stream = httpWebRequest.GetRequestStream();
                stream.Write(byteRequest, 0, byteRequest.Length);
                stream.Close();

                var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                using (var responseStream = httpWebResponse.GetResponseStream())
                {
                    using (var streamReader = new StreamReader(responseStream, Encoding.UTF8))
                    {
                        result.OperateResult = OperateResultEnum.Success;
                        result.Code = httpWebResponse.StatusCode;
                        result.Result = streamReader.ReadToEnd();
                    }
                }
            }
            catch (WebException e)
            {
                using (var errorResponseStream = e.Response.GetResponseStream())
                {
                    using (var errorStreamReader = new StreamReader(errorResponseStream, Encoding.UTF8))
                    {
                        result.OperateResult = OperateResultEnum.Fail;
                        var httpWebResponse = e.Response as HttpWebResponse;
                        if (httpWebResponse != null)
                            result.Code = httpWebResponse.StatusCode;
                        result.ErrorMsg = errorStreamReader.ReadToEnd();
                    }
                }
            }
            catch (Exception e1)
            {
                result.OperateResult = OperateResultEnum.Fail;
                result.ErrorMsg = e1.ToString();
            }

            return result;
        }
Example #11
0
        /// <summary>
        /// 向指定地址发送一个 POST 请求。
        /// </summary>
        /// <param name="url">要请求的地址。</param>
        /// <param name="postData">请求发送的数据,默认为空字符串。</param>
        /// <returns>请求返回的结果。</returns>
        public static RequestResult<string> SendPostRequest(string url, PostData postData = null)
        {
            var result = new RequestResult<string>();

            try
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

                var byteRequest = new byte[0];
                if (null != postData)
                {
                    byteRequest = Encoding.UTF8.GetBytes(postData.GetPostData());
                }

                httpWebRequest.ContentType = "application/x-www-form-urlencoded";
                httpWebRequest.Method = "POST";
                httpWebRequest.ContentLength = byteRequest.Length;

                var stream = httpWebRequest.GetRequestStream();
                stream.Write(byteRequest, 0, byteRequest.Length);
                stream.Close();

                using (var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
                {
                    if (null == httpWebResponse)
                    {
                        result.OperateResult = OperateResultEnum.Fail;
                        result.ErrorMsg = "httpWebResponse 为空";
                        return result;
                    }
                    using (var responseStream = httpWebResponse.GetResponseStream())
                    {
                        using (var streamReader = new StreamReader(responseStream, Encoding.UTF8))
                        {
                            result.OperateResult = OperateResultEnum.Success;
                            result.Code = httpWebResponse.StatusCode;
                            result.Result = streamReader.ReadToEnd();
                        }
                    }
                }
            }
            catch (WebException e)
            {
                using (var errorResponseStream = e.Response.GetResponseStream())
                {
                    using (var errorStreamReader = new StreamReader(errorResponseStream, Encoding.UTF8))
                    {
                        result.OperateResult = OperateResultEnum.Fail;
                        var httpWebResponse = e.Response as HttpWebResponse;
                        if (httpWebResponse != null)
                            result.Code = httpWebResponse.StatusCode;
                        result.ErrorMsg = errorStreamReader.ReadToEnd();
                    }
                }
            }
            catch (Exception e1)
            {
                result.OperateResult = OperateResultEnum.Fail;
                result.ErrorMsg = e1.ToString();
            }

            return result;
        }