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() { }
/// <summary>
/// 单例模式
/// </summary>
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; }
}
/// <summary>
/// 餐厅ID
/// </summary>
public int RestaurantID { get; set; }
public string RestaurantName { get; set; }
public string RestaurantSessionKey { get; set; } #region --Get/Post/Put/Delete 方法操作
/// <summary>
/// Get方式获取数据
/// </summary>
/// <param name="httpUrl"></param>
/// <returns></returns>
public JsonData GetResult(string httpUrl)
{
HttpResponseMessage hrm = httpClient.GetAsync(httpUrl).Result;
JsonData data = hrm.Content.ReadAsAsync<JsonData>().Result;
return data;
}
/// <summary>
/// Get 异步方式获取数据
/// </summary>
/// <param name="httpUrl"></param>
/// <returns></returns>
//public async Task<JsonData> GetAsyncResult(string httpUrl)
//{
// HttpResponseMessage hrm = await httpClient.GetAsync(httpUrl).ConfigureAwait(false);
// JsonData data = hrm.Content.ReadAsAsync<JsonData>().Result;
// return data;
//}
/// <summary>
/// Post 方式传递数据
/// </summary>
/// <param name="postModel"></param>
/// <param name="httpUrl"></param>
/// <returns></returns>
public JsonData PostResult(string httpUrl, object postModel)
{
HttpResponseMessage hrm = httpClient.PostAsJsonAsync(httpUrl, postModel).Result;
JsonData data = hrm.Content.ReadAsAsync<JsonData>().Result;
return data;
}
/// <summary>
/// Post 异步方式传递数据
/// </summary>
/// <param name="httpUrl"></param>
/// <param name="postModel"></param>
/// <returns></returns>
//public async Task<JsonData> PostAsyncResult(string httpUrl, object postModel)
//{
// var hrm = await httpClient.PostAsJsonAsync(httpUrl, postModel).ConfigureAwait(false);
// JsonData data = hrm.Content.ReadAsAsync<JsonData>().Result;
// return data;
//}
/// <summary>
/// Put 更新方式传递数据
/// </summary>
/// <param name="postModel"></param>
/// <param name="httpUrl"></param>
/// <returns></returns>
public JsonData PutResult(string httpUrl, object postModel)
{
HttpResponseMessage hrm = httpClient.PutAsJsonAsync(httpUrl, postModel).Result;
JsonData data = hrm.Content.ReadAsAsync<JsonData>().Result;
return data;
}
/// <summary>
/// Delete 删除方式传递数据
/// </summary>
/// <param name="httpUrl"></param>
/// <returns></returns>
public JsonData DeleteResult(string httpUrl)
{
HttpResponseMessage hrm = httpClient.DeleteAsync(httpUrl).Result;
JsonData data = hrm.Content.ReadAsAsync<JsonData>().Result;
return data;
}
#endregion #region 菜单操作
/// <summary>
/// 获取该店铺所有菜单列表
/// </summary>
/// <returns></returns>
public List<WMFoodMenu> GetFoodMenuList(string httpUrl)
{
JsonData prod = OperateHttp.Instance().GetResult(httpUrl);
var model = JsonConvert.DeserializeObject<List<WMFoodMenu>>(prod.data.ToString());
return model;
} /// <summary>
/// 获取菜单类别
/// </summary>
/// <returns></returns>
public List<WMFoodMenuCategory> GetFoodMenuCategory()
{
string httpUrl = HttpUrl.FoodMenuCategoryUrl + OperateHttp.Instance().RestaurantID;
JsonData prod = OperateHttp.Instance().GetResult(httpUrl);
var model = JsonConvert.DeserializeObject<List<WMFoodMenuCategory>>(prod.data.ToString());
return model;
}
/// <summary>
/// 获取菜单单个信息
/// </summary>
/// <returns></returns>
public WMFoodMenu GetFoodMenu(int foodMenuID)
{
string httpUrl = HttpUrl.FoodMenuOneUrl + foodMenuID;
JsonData prod = OperateHttp.Instance().GetResult(httpUrl);
var model = JsonConvert.DeserializeObject<WMFoodMenu>(prod.data.ToString());
return model;
}
/// <summary>
/// 更新菜单
/// </summary>
/// <returns></returns>
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;
}
}
/// <summary>
/// 更新菜单状态
/// </summary>
/// <returns></returns>
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;
}
}
/// <summary>
/// 删除菜单
/// </summary>
/// <returns></returns>
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 /// <summary>
/// 获取订单列表
/// </summary>
/// <param name="httpUrl"></param>
/// <returns></returns>
public List<WMOrder> GetOrder(string httpUrl)
{
JsonData prod = OperateHttp.Instance().GetResult(httpUrl);
var model = JsonConvert.DeserializeObject<List<WMOrder>>(prod.data.ToString());
return model;
} /// <summary>
/// 获取订单列表
/// </summary>
/// <param name="httpUrl"></param>
/// <returns></returns>
public WMOrderDetail GetOrderDetail(int orderID)
{
string httpUrl = HttpUrl.OrderDetailUrl + orderID.ToString();
JsonData prod = OperateHttp.Instance().GetResult(httpUrl);
var model = JsonConvert.DeserializeObject<WMOrderDetail>(prod.data.ToString());
return model;
}
/// <summary>
/// 取消订单
/// </summary>
/// <param name="orderID">订单ID</param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 订单打印
/// </summary>
/// <param name="httpUrl"></param>
/// <returns></returns>
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();
}
}
}
}

.net 调用API并解析Json数据方法的更多相关文章

  1. Java创建和解析Json数据方法(五)——Google Gson包的使用

    (五)Google Gson包的使用 1.简介 Gson包中,使用最多的是Gson类的toJson()和fromJson()方法:         ①toJson():将java对象转化为json数据 ...

  2. Java创建和解析Json数据方法(二)——org.json包的使用

    (二)org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...

  3. Java创建和解析Json数据方法——org.json包的使用(转)

    org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, ...

  4. Java创建和解析Json数据方法(四)——json-lib包的使用

    (四)json-lib包的使用         既然json-lib包比org.json包重量级,那么json-lib包肯定有很多org.json包没有的类和方法,这篇笔记简单记录json-lib包中 ...

  5. Java创建和解析Json数据方法(三)——json-lib包的使用

    (三)json-lib包的使用         这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject.JSONArray和Java对象:beans, maps ...

  6. 使用Python解析JSON数据的基本方法

    这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下:     ----------------------------------- ...

  7. 用jquery解析JSON数据的方法以及字符串转换成json的3种方法

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...

  8. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  9. Java构造和解析Json数据的两种方法详解二

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...

随机推荐

  1. tornado web开发

      tornado是python的web框架,这里简单记录下利用tornado怎么实现文件的上传,其中web.py上传功能类似. 直接用代码说明: 代码来自:http://my.oschina.net ...

  2. 通过Adb 查看当前正在运行的Activity.

    extends:http://www.cnblogs.com/tt_mc/p/4269833.html adb shell dumpsys activity activities | sed -En ...

  3. Spring Cloud Eureka 服务消费者

    参考<spring cloud 微服务实战> 现在已经构建了服务注册中心和服务提供中心,下面就来构建服务消费者: 服务消费者主要完成:发现服务和消费服务.其中服务的发现主要由Eureka的 ...

  4. java读取写入oracle的blob字段工具类

    import com.hzunitech.fxgk.sys.model.UtFileData;import com.jfinal.kit.PathKit;import com.jfinal.plugi ...

  5. 移动端app跳转百度地图

    http://lbsyun.baidu.com/index.php?title=uri/guide/helloworld(百度地图调起URI API)开发者只需按照接口规范构造一条标准的URI,便可在 ...

  6. vue--循环列表

    <template> <div id="app"> <p v-for="x in list">{{x}}</p> ...

  7. python-django开发学习笔记三

    1.简述 1.1 开发环境 该笔记所基于的开发环境为:windows8.python2.7.5.psycopg2-2.4.2.django1.5.4.pyCharm-2.7.3.以上所描述的软件.插件 ...

  8. python 读取一个目录下的所有目录和文件

    #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...

  9. 反正切函数atan与atan2的区别

    atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2); 那么这两个点形成的斜率的角度计算方法分别是: float angle = atan ...

  10. The Unique MST POJ - 1679 最小生成树判重

    题意:求一个无向图的最小生成树,如果有多个最优解,输出"Not Unique!" 题解: 考虑kruskal碰到权值相同的边: 假设点3通过边(1,3)连入当前所维护的并查集s. ...