/// <summary> /// 删除实体 /// </summary> /// <param name="info"></param> /// <returns></returns> public virtual CommandResult Delete(TEntity info, bool anonymous = false) { try { using (var client = new GZipWebClient()) { if (!anonymous) { if (TokenInfo.Tokens.ContainsKey(RepoUri) == false || TokenInfo.Tokens[RepoUri].NeedNewToken()) { GetToken(); } client.Headers.Add("Authorization", string.Format("{0} {1}", "Bearer", TokenInfo.Tokens[RepoUri].Token)); } string url = GetControllerUrl() + HttpUtility.UrlEncode(string.Format("{0}", info.ID), ASCIIEncoding.UTF8) + "/"; client.Encoding = System.Text.Encoding.UTF8; client.Headers.Add("accept", "application/json;charset=utf-8"); client.Headers.Add("content-type", "application/json;charset=utf-8;"); var retBytes = client.UploadString(url, "DELETE", string.Empty); if (!string.IsNullOrEmpty(retBytes)) { return(JsonConvert.DeserializeObject <CommandResult>(retBytes)); } return(new CommandResult(ResultCode.Successful, string.Empty)); } } catch (Exception ex) { if (ex is WebException) { var wex = ex as WebException; var response = wex.Response as System.Net.HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.Unauthorized) { TokenInfo.Tokens[RepoUri] = null; //如果是未授权,则清掉当前Token } } return(new CommandResult(ResultCode.Fail, ex.Message)); } }