//MVC  具体方法

//API地址 通过 WebConfig配置
private static string apiAdds = ConfigurationManager.AppSettings["ApiAddress"]; //具体方法
public int AddSelectFlowerBll(string selectProduct, string productName, string productSum,int UserID)
{
try
{
//非空判断
if (!string.IsNullOrEmpty(selectProduct) && !string.IsNullOrEmpty(productName) &&
!string.IsNullOrEmpty(productSum))
{
AssembleFlower aFlower = new AssembleFlower();
aFlower.Name = productName;
aFlower.PriceSum = Convert.ToInt32(productSum);
//添加人为1
aFlower.AssembleMan = UserID;
aFlower.AssembleTime = DateTime.Now;
aFlower.IsDel = ;
List<AssembleMaterial> materialList = new List<AssembleMaterial>();
string[] productArry = selectProduct.Split(';');
for (int i = ; i < productArry.Length - ; i++)
{
string[] flowerArry = productArry[i].Split(',');
AssembleMaterial m = new AssembleMaterial();
m.MaterialID = Convert.ToInt32(flowerArry[]);
m.MaterialCount = Convert.ToInt32(flowerArry[]);
materialList.Add(m); }
string[] strArray = { JsonConvert.SerializeObject(aFlower), JsonConvert.SerializeObject(materialList) }; #region 向后台提交数据
//创建HttpClient对象
Uri uri = new Uri(apiAdds);
HttpClient client = new HttpClient();
client.BaseAddress = uri;
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var jsonStr = JsonConvert.SerializeObject(strArray);
HttpContent cont = new StringContent(jsonStr);
cont.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var returnStr = "";
HttpResponseMessage resp = client.PostAsync("api/SelectFlower/AssembleAdd", cont).Result;//post提交数据,
if (resp.IsSuccessStatusCode)
{
returnStr = resp.Content.ReadAsStringAsync().Result;
}
#endregion return Convert.ToInt32(JsonConvert.DeserializeObject(returnStr));
}
else
{
//空值
return -;
}
}
catch
{
//发生错误
return -;
throw;
}
}
 
//API

[RoutePrefix("api/SelectFlower")]
public class SelectFlowerController : ApiController
{
/// <summary>
/// 获取自选花的类型
/// </summary>
/// <param name="FlowerType"></param>
/// <returns></returns>
[HttpGet]
[Route("GetSelectFlower")]
public DataTable GetSelectFlower(string FlowerType)
{
string sql = string.Format("select * from FlowerMaterial where IsDel=0 and FlowerType=@FlowerType");
SqlParameter parameter = new SqlParameter("@FlowerType", SqlDbType.VarChar, );
parameter.Value = FlowerType;
return DBHelperSQL.QueryDataTable(sql, parameter);
} [HttpPost]
[Route("AssembleAdd")]
public string AssembleAdd([FromBody] dynamic jsonStr)
{
//将前台传过来的值转化为数组
var data = JsonConvert.DeserializeObject<string[]>(jsonStr.ToString());
AssembleFlower aFlower = JsonConvert.DeserializeObject<AssembleFlower>(data[]);
List<AssembleMaterial> MaterialList = JsonConvert.DeserializeObject<List<AssembleMaterial>>(data[]);
List<DBHelperSQL.KeyValue> list=new List<DBHelperSQL.KeyValue>();
list.Add(new DBHelperSQL.KeyValue()
{
Key = "insert into AssembleFlower values(@Name,@PriceSum,@AssembleMan,@AssembleTime,0)",
Value = new SqlParameter[]
{
new SqlParameter("@Name",aFlower.Name),
new SqlParameter("@PriceSum",aFlower.PriceSum),
new SqlParameter("@AssembleMan",aFlower.AssembleMan),
new SqlParameter("@AssembleTime",aFlower.AssembleTime),
}
});
foreach (var material in MaterialList)
{
list.Add(new DBHelperSQL.KeyValue()
{
Key = "insert into AssembleMaterial values(@MaterialID,@MaterialCount,(select top 1 ID from AssembleFlower order by ID desc))",
Value = new SqlParameter[]
{
new SqlParameter("@MaterialID",material.MaterialID),
new SqlParameter("@MaterialCount",material.MaterialCount)
}
});
}
list.Add(new DBHelperSQL.KeyValue()
{
Key = " insert into MyCar values(3,(select top 1 ID from AssembleFlower order by ID desc),1,@UserID,@CreateTime,0)",
Value = new SqlParameter[]
{
new SqlParameter("@UserID",aFlower.AssembleMan),
new SqlParameter("@CreateTime",DateTime.Now)
}
});
return DBHelperSQL.ExecuteSqlTranAndReturn(list).ToString();
}
}

C# asp.net mvc 通过 HttpClient 访问 Web_API的更多相关文章

  1. ASP.NET MVC 提供与访问 Web Api

    ASP.NET MVC 提供与访问 Web Api 一.提供一个 Web Api 新建一个项目,类型就选 "Web Api".我用的是MVC5,结果生成的项目一大堆东西,还编译不过 ...

  2. Angular2中对ASP.NET MVC跨域访问

    应用场景 项目开发决定使用angular2进行前后端分离开发,由我负责后端服务的开发,起初选择的是web api进行开发.对跨域访问通过API中间件+过滤器对跨域访问进行支持.开发一段后,通知需要移植 ...

  3. ASP.NET MVC+Entity Framework 访问数据库

    Entity Framework 4.1支持代码优先(code first)编程模式:即可以先创建模型类,然后通过配置在EF4.1下动态生成数据库. 下面演示两种情形: 1.代码优先模式下,asp.n ...

  4. Asp.Net MVC主项目访问不到分离项目控制器的解决方案

    我在portal主项目外新建一个分离项目,控制器和Model都写在分离项目中,视图层写在portal中. 我更改了命名空间,引用了Dll,还是不能访问到控制器. 找到问题: 最后我发现是主项目port ...

  5. ASP.NET MVC 获取当前访问域名

    var request = filterContext.HttpContext.Request; string url = request.Url.Authority; string function ...

  6. Asp.NET MVC 之 调试访问 webservice 时出现“ 无法找到资源 ”的错误

    问题情景如标题,具体错误如下图: 出现以上情况,是程序将 .asmx 文件按控制器方式解析了,在 RouteConfig.cs 文件的 RegisterRoutes 方法中忽略 .asmx 文件,&q ...

  7. 图文详解远程部署ASP.NET MVC 5项目

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

  8. 图文详解远程部署ASP.NET MVC 5项目 [转载]

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

  9. ASP.NET MVC 5项目

    图文详解远程部署ASP.NET MVC 5项目   话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专 ...

随机推荐

  1. 记一次<iframe>的使用

    将jsp拆分frame框架,因为采用了第一种方式,一直在考虑用jquery异步请求获取数据,总是但不到效果, 终于在js写吐的时候选择了第二种方式. //参考网上的使用,大多是下面这个样子,如果涉及静 ...

  2. 删除API

    Delete API 删除API允许根据ID从指定索引中删除一个类型化的JSON文档. DELETE /twitter/_doc/1 返回结果如下: { "_index": &qu ...

  3. 使用 python 实现π的计算

    1.π的神奇 π是一个无数人追随的真正的神奇数字.我不是很清楚一个永远重复的无理数的迷人之处.在我看来,我乐于计算π,也就是计算π的值.因为π是一个无理数,它是无限的.这就意味着任何对π的计算都仅仅是 ...

  4. 二分- Count on Canton

    题目: 代码: 是一个蛇形数列,把题目上的那组数倒过来看成一个正三角形. 第一行有1个数,1-2行有三个数,1-4行有6个数,1-4行有10个数,1-5行有15个数..... 现在要求第n个数是多少, ...

  5. Foxmail6.5 ERR LOGIN FAIL 重新输入口令

    这几天 Foxmail 6.5 收邮件不正常,一直报告ERR LOGIN FAIL,要求重新输入口令. 但输入正确的口令也无法收邮件. 反复折腾,最后发现如下设置即可: 邮箱账户设置 --> 邮 ...

  6. 【安富莱专题教程第7期】终极调试组件Event Recorder,各种Link通吃,支持时间和功耗测量,printf打印,RTX5及中间件调试

    说明:1.继前面的专题教程推出SEGGER的RTT,JScope,Micrium的uC/Probe之后,再出一期终极调试方案Event Recoder,之所以叫终极解决方案,是因为所有Link通吃.  ...

  7. 基于Java实现简化版本的布隆过滤器

    一.布隆过滤器: 布隆过滤器(Bloom Filter)是1970年由布隆提出的.它实际上是一个很长的二进制向量和一系列随机映射函数.布隆过滤器可以用于检索一个元素是否在一个集合中.它的优点是空间效率 ...

  8. Java面试题:小白不得不懂的斐波那契数列

    很长一段时间里,我都非常疑惑:“我写的技术文章不差啊,有内容的同时还很有趣,不至于每篇只有区区几十个人读啊?为什么有些内容简单到只有一行注册码的文章浏览量反而轻松破万?”这样的疑惑如鲠在喉啊!写技术博 ...

  9. spark能传递外部命名参数给main函数吗?

    查了资料好像都没有办法.只能通过: def main(args: Array[String]): Unit = { // 读取参数 var city = args(0) var input = arg ...

  10. 【WebApi】通过HttpClient调用Web Api接口

    HttpClient是一个封装好的类,它在很多语言中都有被实现,现在HttpClient最新的版本是4.5. 它支持所有的http方法,自动转向,https协议,代理服务器. 一.Api接口参数标准化 ...