/// <summary> /// 服务接口请求 /// </summary> /// <typeparam name="RequestT"></typeparam> /// <typeparam name="ResponseT"></typeparam> /// <param name="apiName"></param> /// <param name="data"></param> /// <param name="responseTIsEntity">指定的ResponseT是实体,不是ResultMsgT"></param> /// <returns></returns> public static ResultMsg <ResponseT> RequestServer <RequestT, ResponseT>(String apiPath, RequestT data, bool responseTIsEntity = true) { ResultMsg <ResponseT> resultMsg = new ResultMsg <ResponseT>(); ResultMsg <String> result = null; if (data is HttpReqEntity) { var tmp = data as HttpReqEntity; String url = apiPath; result = HttpHelper.Http(url, tmp); } else { String strData = String.Empty; if (null != data) { strData = JsonFormatter.Serialize(data); } result = RequestServer(apiPath, HttpMethod.POST, strData); } if (result.Status == ResultStatus.Success) { if (!String.IsNullOrEmpty(result.ResultObj)) { //返回服务器原始对象 if (!responseTIsEntity) { ResponseT tmp = JsonFormatter.Deserialize <ResponseT>(result.ResultObj); if (tmp == null) { resultMsg.SetFailure("数据请求错误,返回对象为空!"); } else { ResultMsg <ResponseT> serverResult = tmp as ResultMsg <ResponseT>; if (serverResult != null) { serverResult.CopyTo <ResponseT>(resultMsg); } else { resultMsg.SetFailure("解析JSON数据失败,返回对象不正确!"); } } } else { ResultMsg <ResponseT> tmp = JsonFormatter.Deserialize <ResultMsg <ResponseT> >(result.ResultObj); if (tmp == null) { resultMsg.SetFailure("数据请求错误,返回对象为空!"); } else { resultMsg = tmp; if (String.IsNullOrEmpty(resultMsg.Msg)) { resultMsg.Msg = result.ResultObj; } } } } else { resultMsg.SetFailure("数据请求错误,返回对象为空!"); } } else { resultMsg.SetFailure(result.Msg); } return(resultMsg); }