Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 6
0
 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;
     }
 }
Ejemplo n.º 7
0
        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("请求异常!");
        }
Ejemplo n.º 9
0
 public UserSteps(HttpRequestMethods httpRequestMethods)
 {
     _httpRequestMethods = httpRequestMethods;
 }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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));
        }