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; }
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; }); } }); }
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); }
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); } }
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 } }); }
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; }
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); }
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); } }
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; }
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; }
/// <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; }