public T UpdateTable <T>(bool isConnected, T t, HttpRequestMethods method, string route = "", int?id = null) where T : class { T retVal = default(T); if (isConnected) { try { var x = UpdateOfflineDb(t, method, route, id); (t as District).PK_District = 0; var jsonString = JsonConvert.SerializeObject(t); var result = edr.ExecuteRequest(route, method, jsonString, id); if (method.ToString() != "Put") { retVal = JsonConvert.DeserializeObject <T>(result.ToString()); } } catch (Exception e) { } return(retVal); } else { // we're offline - add transaction to sync _ss.AddTransactionToSyncTable(new Sync { Active = true, Entity = JsonConvert.SerializeObject(t), EntityType = route.Replace("api/", "").Replace("/", ""), Method = method, Id = id });; return(UpdateOfflineDb(t, method, route, id)); } }
public void WhenISendTheDetailsToTheMetaWeblogEndpoint() { var xmlRpc = ScenarioContext.Current.Get <RequestTop>(Keys.XmlRpcRequest); var request = HttpRequestMethods.CreateRequest("http://endjin.com/metaweblog", "text/xml", HttpMethod.Post, xmlRpc, new XmlMediaTypeFormatter()); Print.HttpRequestMessage(request); var client = ScenarioContext.Current.Get <HttpClient>(Keys.HttpClient); HttpResponseMessage response = client.SendAsync(request, new CancellationTokenSource().Token).Result; Print.HttpResponseMessage(response); ScenarioContext.Current.Set(response, Keys.HttpResponseMessage); }
public ObservableCollection <T> GetTableList(bool isConnected, T t, HttpRequestMethods method, string route) { string jsonString = null; if (isConnected) { try { var task = edr.ExecuteRequest(route, method); if (task.Result.Contains("Exception")) { return(null); } else { return(JsonConvert.DeserializeObject <ObservableCollection <T> >(task.Result)); } } catch (Exception e) { return(null); } } else { // offline var oc = new ObservableCollection <T>(); if (t is District) { var resp = unitOfWork.District.GetAll(); jsonString = JsonConvert.SerializeObject(resp); } else { if (t is Region) { var resp = unitOfWork.Region.GetAll(); jsonString = JsonConvert.SerializeObject(resp); } } oc = JsonConvert.DeserializeObject <ObservableCollection <T> >(jsonString); return(oc); } }
public static async Task <ObservableCollection <District> > GetDistrictList(HttpRequestMethods method) { ObservableCollection <District> resp = null; var result = ""; try { result = await edr.ExecuteRequest("api/district/", method, null); resp = JsonConvert.DeserializeObject <ObservableCollection <District> >(result); } catch (Exception ex) { Console.WriteLine(ex.Message); //resp = ex.Message.ToString(); } return(resp); }
public static async Task <DistrictResponse> UpdateDistrict(District dr, HttpRequestMethods method) { // Initialization. // RegInfoResponseObj responseObj = new RegInfoResponseObj(); DistrictResponse resp = null; var result = ""; //HttpRequestMethods method = HttpRequestMethods.Put; try { var jsonString = JsonConvert.SerializeObject(dr); result = await edr.ExecuteRequest("api/district/", method, jsonString); var sresp = JsonConvert.DeserializeObject <ObservableCollection <District> >(result); } catch (Exception ex) { Console.WriteLine(ex.Message); //resp = ex.Message.ToString(); } return(resp); }
public static bool IsSafeMethod(HttpRequestMethods requestMethod) { switch (requestMethod) { case HttpRequestMethods.GET: case HttpRequestMethods.HEAD: case HttpRequestMethods.OPTIONS: case HttpRequestMethods.TRACE: return true; default: return false; } }
public static string GetMethod(HttpRequestMethods method) { if (_methodsEnumKey.ContainsKey(method)) return _methodsEnumKey[method]; throw new Exception(string.Format("Unknown Request method '{0}' from client.", method)); }
public static async Task <string> RequestHandler(HttpRequestMethods method, string url, Dictionary <string, object> dic, string jsonData = "") { try { //传入Authorization Token Client.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse(GlobalCache.Token); HttpResponseMessage response; switch (method) { //GET请求 case HttpRequestMethods.Get: url = dic.Keys.Aggregate(url, (current, item) => current + $"{item}={dic[item]}&"); return(await Client.GetStringAsync($"{ApiUrl + url}")); //POST case HttpRequestMethods.Post: var bodyData = JsonConvert.SerializeObject(dic); if (!string.IsNullOrEmpty(jsonData)) { bodyData = jsonData; } response = await Client.PostAsync($"{ApiUrl + url}", new StringContent(bodyData, Encoding.UTF8, MediaType)); if (response.StatusCode != HttpStatusCode.Created) { return(await response.Content.ReadAsStringAsync()); } var strData = await response.Content.ReadAsStringAsync(); MsgResult.ResultMessage = "创建成功!"; MsgResult.ResultData = strData; return(JsonConvert.SerializeObject(MsgResult)); //PUT case HttpRequestMethods.Put: response = await Client.PutAsync($"{ApiUrl + url}", new StringContent(JsonConvert.SerializeObject(dic), Encoding.UTF8, MediaType)); if (response.StatusCode != HttpStatusCode.NoContent) { return(await response.Content.ReadAsStringAsync()); } return(JsonConvert.SerializeObject(new JsonMessageResult("修改成功", 1, 0))); //DELETE case HttpRequestMethods.Delete: response = await Client.DeleteAsync($"{ApiUrl + url}"); var result = await response.Content.ReadAsStringAsync(); return(string.IsNullOrEmpty(result) ? JsonConvert.SerializeObject(new JsonMessageResult("删除成功", 1, 0)) : result); case HttpRequestMethods.Patch: break; default: return("未找到此请求方式!"); } } catch (WebException e) { if (e.Status == WebExceptionStatus.ProtocolError) { return(JsonConvert.SerializeObject(new JsonMessageResult("未找到接口资源或未授权!", 0, null))); } if (e.Status != WebExceptionStatus.ProtocolError) { return(JsonConvert.SerializeObject(new JsonMessageResult("请求异常!", 0, null))); } var reader = new StreamReader( e.Response.GetResponseStream() ?? throw new InvalidOperationException(), Encoding.UTF8); using (reader) return(await reader.ReadToEndAsync()); } catch (HttpRequestException e) { LogHelper.Error(e.ToString()); return(MsgProvider.FailMsg($"接口请求异常!{e.Message}")); } catch (Exception e) { LogHelper.Error(e.ToString()); return(MsgProvider.FailMsg($"发生异常:{e.Message}")); } return("请求异常!"); }
public UserSteps(HttpRequestMethods httpRequestMethods) { _httpRequestMethods = httpRequestMethods; }
public async Task <string> ExecuteRequest(string route, HttpRequestMethods method, string content = null, int?id = null) { string result = null; StringContent pContent = null; using (var client = new System.Net.Http.HttpClient()) { try { // Setting Base address. client.BaseAddress = new Uri("https://localhost:44375/"); // Setting content type. client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Setting timeout. client.Timeout = TimeSpan.FromSeconds(Convert.ToDouble(1000000)); HttpResponseMessage response = new HttpResponseMessage(); switch (method) { case HttpRequestMethods.Post: pContent = new StringContent(content, Encoding.UTF8, "application/json"); response = client.PostAsync(route, pContent).GetAwaiter().GetResult(); break; case HttpRequestMethods.Put: pContent = new StringContent(content, Encoding.UTF8, "application/json"); response = client.PutAsync(route + id.ToString(), pContent).GetAwaiter().GetResult(); break; case HttpRequestMethods.Delete: response = client.DeleteAsync(route + id.ToString()).GetAwaiter().GetResult(); break; case HttpRequestMethods.Get: response = client.GetAsync(route).GetAwaiter().GetResult(); break; default: break; } // Verification if (response.IsSuccessStatusCode) { result = response.Content.ReadAsStringAsync().Result; // Releasing. response.Dispose(); } else { // Reading Response. result = response.Content.ReadAsStringAsync().Result; //responseObj.code = 602; } } catch (Exception ex) { throw ex; } return(result); } }
public string GetHttpResponseText(string httpUrl, HttpRequestMethods requestMethod) { HttpWebRequest req; req = (HttpWebRequest)WebRequest.Create(httpUrl); req.ContentType = "application/json"; req.KeepAlive = true; req.AllowAutoRedirect = true; req.CookieContainer = CookieJar; req.Method = Enum.GetName(typeof(HttpRequestMethods), requestMethod); if (CustomHeaders.Count > 0) { foreach (KeyValuePair <string, string> header in CustomHeaders) { req.Headers.Add(header.Key, header.Value); } } switch (requestMethod) { case HttpRequestMethods.GET: break; case HttpRequestMethods.POST: AddPostDataToRequest(ref req); break; case HttpRequestMethods.PATCH: AddPostDataToRequest(ref req); break; default: break; } StreamReader sr; HttpWebResponse resp; try { resp = (HttpWebResponse)req.GetResponse(); } catch (WebException ex) { resp = (HttpWebResponse)ex.Response; switch (resp.StatusCode) { case HttpStatusCode.InternalServerError: // 500 break; default: throw; } } sr = new StreamReader(resp.GetResponseStream()); string HTTPResponse = sr.ReadToEnd(); sr.Close(); resp.Close(); return(HTTPResponse); }
private T UpdateOfflineDb <T>(T t, HttpRequestMethods method, string route, int?id) where T : class { try { switch (method) { case HttpRequestMethods.Post: { if (t is District) { var d = (_dbOffline.District.Add(t as District)); _dbOffline.SaveChanges(); return(d as T); } else if (t is Region) { var r = _dbOffline.Region.Add(t as Region); _dbOffline.SaveChanges(); return(r as T); } else if (t is Employee) { var e = _dbOffline.Employee.Add(t as Employee); _dbOffline.SaveChanges(); return(e as T); } } break; case HttpRequestMethods.Delete: if (t is District) { var dist = _dbOffline.District.FirstOrDefault(f => f.PK_District == id); _dbOffline.District.Remove(dist); } else if (t is Region) { var dist = _dbOffline.Region.FirstOrDefault(f => f.PK_Region == id); _dbOffline.Region.Remove(t as Region); } else if (t is Employee) { var dist = _dbOffline.Employee.FirstOrDefault(f => f.PK_Employee == id); _dbOffline.Employee.Remove(t as Employee); } break; case HttpRequestMethods.Put: if (t is District) { var d = _dbOffline.District.First(f => f.PK_District == id); d.FK_Region = (t as District).FK_Region; d.DistrictName = (t as District).DistrictName; } else if (t is Region) { var r = _dbOffline.Region.First(d => d.PK_Region == id); r.RegionName = (r as Region).RegionName; } else if (t is Employee) { var em = t as Employee; var e = _dbOffline.Employee.First(d => d.PK_Employee == id); e.FK_Store = em.FK_Store; e.FK_State = em.FK_State; e.FK_Country = em.FK_Country; e.FK_Race = em.FK_Race; e.FK_Gender = em.FK_Gender; e.EmployeeId = em.EmployeeId; e.AspUserId = em.AspUserId; e.FirstName = em.FirstName; e.MiddleName = em.MiddleName; e.LastName = em.LastName; e.NameSuffix = em.NameSuffix; e.Email = em.Email; e.Address = em.Address; e.Address1 = em.Address1; e.City = em.City; e.ZipCode = em.ZipCode; } break; } _dbOffline.SaveChanges(); } catch (Exception e) { } return(default(T)); }