博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net 调用API并解析Json数据方法
阅读量:7119 次
发布时间:2019-06-28

本文共 6221 字,大约阅读时间需要 20 分钟。

hot3.png

using System;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Text;using System.Threading.Tasks;using Newtonsoft.Json;using Jyson.IZhanShi.Model.WebApiModel;namespace Jyson.IZhanShi.WinDesktop.Utility{    public class OperateHttp    {        private OperateHttp() { }        ///         /// 单例模式        ///         private static OperateHttp _instance = null;        public static OperateHttp Instance()        {            if (_instance == null)            {                _instance = new OperateHttp();            }            return _instance;        }        static HttpClient _httpClient;        public HttpClient httpClient        {            get            {                if (_httpClient == null)                    _httpClient = new HttpClient();                return _httpClient;            }            set { _httpClient = value; }        }        ///         /// 餐厅ID        ///         public int RestaurantID { get; set; }        public string RestaurantName { get; set; }        public string RestaurantSessionKey { get; set; }        #region --Get/Post/Put/Delete 方法操作        ///         /// Get方式获取数据        ///         ///         /// 
public JsonData GetResult(string httpUrl) { HttpResponseMessage hrm = httpClient.GetAsync(httpUrl).Result; JsonData data = hrm.Content.ReadAsAsync
().Result; return data; } ///
/// Get 异步方式获取数据 /// ///
///
//public async Task
GetAsyncResult(string httpUrl) //{ // HttpResponseMessage hrm = await httpClient.GetAsync(httpUrl).ConfigureAwait(false); // JsonData data = hrm.Content.ReadAsAsync
().Result; // return data; //} ///
/// Post 方式传递数据 /// ///
///
///
public JsonData PostResult(string httpUrl, object postModel) { HttpResponseMessage hrm = httpClient.PostAsJsonAsync(httpUrl, postModel).Result; JsonData data = hrm.Content.ReadAsAsync
().Result; return data; } ///
/// Post 异步方式传递数据 /// ///
///
///
//public async Task
PostAsyncResult(string httpUrl, object postModel) //{ // var hrm = await httpClient.PostAsJsonAsync(httpUrl, postModel).ConfigureAwait(false); // JsonData data = hrm.Content.ReadAsAsync
().Result; // return data; //} ///
/// Put 更新方式传递数据 /// ///
///
///
public JsonData PutResult(string httpUrl, object postModel) { HttpResponseMessage hrm = httpClient.PutAsJsonAsync(httpUrl, postModel).Result; JsonData data = hrm.Content.ReadAsAsync
().Result; return data; } ///
/// Delete 删除方式传递数据 /// ///
///
public JsonData DeleteResult(string httpUrl) { HttpResponseMessage hrm = httpClient.DeleteAsync(httpUrl).Result; JsonData data = hrm.Content.ReadAsAsync
().Result; return data; } #endregion #region 菜单操作 ///
/// 获取该店铺所有菜单列表 /// ///
public List
GetFoodMenuList(string httpUrl) { JsonData prod = OperateHttp.Instance().GetResult(httpUrl); var model = JsonConvert.DeserializeObject
>(prod.data.ToString()); return model; } ///
/// 获取菜单类别 /// ///
public List
GetFoodMenuCategory() { string httpUrl = HttpUrl.FoodMenuCategoryUrl + OperateHttp.Instance().RestaurantID; JsonData prod = OperateHttp.Instance().GetResult(httpUrl); var model = JsonConvert.DeserializeObject
>(prod.data.ToString()); return model; } ///
/// 获取菜单单个信息 /// ///
public WMFoodMenu GetFoodMenu(int foodMenuID) { string httpUrl = HttpUrl.FoodMenuOneUrl + foodMenuID; JsonData prod = OperateHttp.Instance().GetResult(httpUrl); var model = JsonConvert.DeserializeObject
(prod.data.ToString()); return model; } ///
/// 更新菜单 /// ///
public bool PutFoodMenu(int foodMenuID, WMFoodMenu model) { string httpUrl = HttpUrl.FoodMenuUrl + OperateHttp.Instance().RestaurantID; JsonData data = OperateHttp.Instance().PutResult(httpUrl, model); if (data.errorCode == (int)Model.Enum.ApiErrorEnum.Success && !string.IsNullOrEmpty(data.errorMsg)) { return true; } else { return false; } } ///
/// 更新菜单状态 /// ///
public bool PutIsSell(int foodMenuID, WMFoodMenuIsSell model) { string httpUrl = HttpUrl.FoodMenuOneUrl + foodMenuID.ToString(); JsonData data = OperateHttp.Instance().PutResult(httpUrl, model); if (data.errorCode == (int)Model.Enum.ApiErrorEnum.Success && !string.IsNullOrEmpty(data.errorMsg)) { return true; } else { return false; } } ///
/// 删除菜单 /// ///
public bool DeleteFoodMenu(int foodMenuID) { string httpUrl = HttpUrl.FoodMenuOneUrl + foodMenuID.ToString(); JsonData data = OperateHttp.Instance().DeleteResult(httpUrl); if (data.errorCode == (int)Model.Enum.ApiErrorEnum.Success && !string.IsNullOrEmpty(data.errorMsg)) { return true; } else { return false; } } #endregion ///
/// 获取订单列表 /// ///
///
public List
GetOrder(string httpUrl) { JsonData prod = OperateHttp.Instance().GetResult(httpUrl); var model = JsonConvert.DeserializeObject
>(prod.data.ToString()); return model; } ///
/// 获取订单列表 /// ///
///
public WMOrderDetail GetOrderDetail(int orderID) { string httpUrl = HttpUrl.OrderDetailUrl + orderID.ToString(); JsonData prod = OperateHttp.Instance().GetResult(httpUrl); var model = JsonConvert.DeserializeObject
(prod.data.ToString()); return model; } ///
/// 取消订单 /// ///
订单ID ///
public bool DeleteOrder(int orderID) { string httpUrl = HttpUrl.OrderUrl + orderID.ToString(); JsonData data = OperateHttp.Instance().DeleteResult(httpUrl); if (data.errorCode == (int)Model.Enum.ApiErrorEnum.Success && !string.IsNullOrEmpty(data.errorMsg)) { return true; } else { return false; } } ///
/// 订单打印 /// ///
///
public string PutOrderPrint(int orderID) { string httpUrl = HttpUrl.OrderPrintUrl + orderID.ToString(); JsonData resultData = OperateHttp.Instance().PutResult(httpUrl, null); if (resultData.errorCode == (int)Model.Enum.ApiErrorEnum.Success && !string.IsNullOrEmpty(resultData.errorMsg)) { return "Success"; } else { return resultData.data.ToString(); } } }}

 

转载于:https://my.oschina.net/dingliu/blog/759101

你可能感兴趣的文章
Allow windows service to "Interact with desktop"
查看>>
InitGoogleLogging坑爹
查看>>
SQL 查询间隔时间大于60s的所有数据
查看>>
*ecshop 限制文章帮助文章显示条数
查看>>
使用phpStudyy运行tipask
查看>>
c# 常用函数
查看>>
网络TCp数据的传输设计(黏包处理)
查看>>
C++ Custom Control控件 向父窗体发送对应的消息
查看>>
二十四 多重继承
查看>>
jmeter压力性能测试-多台机器并发请求
查看>>
选择编程字体
查看>>
小程序日常工作总结
查看>>
mySql学习笔记:比sql server书写要简单
查看>>
ajax封装
查看>>
例题9-6 UVa11400 Lighting System Design(DP)
查看>>
PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)
查看>>
Arcgis Engine 添加一个Symbol符号样式步骤
查看>>
kafka 控制台命令
查看>>
alpha冲刺10
查看>>
睡觉了~~
查看>>