C# asp.net mvc 通过 HttpClient 访问 Web_API
//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的更多相关文章
- ASP.NET MVC 提供与访问 Web Api
ASP.NET MVC 提供与访问 Web Api 一.提供一个 Web Api 新建一个项目,类型就选 "Web Api".我用的是MVC5,结果生成的项目一大堆东西,还编译不过 ...
- Angular2中对ASP.NET MVC跨域访问
应用场景 项目开发决定使用angular2进行前后端分离开发,由我负责后端服务的开发,起初选择的是web api进行开发.对跨域访问通过API中间件+过滤器对跨域访问进行支持.开发一段后,通知需要移植 ...
- ASP.NET MVC+Entity Framework 访问数据库
Entity Framework 4.1支持代码优先(code first)编程模式:即可以先创建模型类,然后通过配置在EF4.1下动态生成数据库. 下面演示两种情形: 1.代码优先模式下,asp.n ...
- Asp.Net MVC主项目访问不到分离项目控制器的解决方案
我在portal主项目外新建一个分离项目,控制器和Model都写在分离项目中,视图层写在portal中. 我更改了命名空间,引用了Dll,还是不能访问到控制器. 找到问题: 最后我发现是主项目port ...
- ASP.NET MVC 获取当前访问域名
var request = filterContext.HttpContext.Request; string url = request.Url.Authority; string function ...
- Asp.NET MVC 之 调试访问 webservice 时出现“ 无法找到资源 ”的错误
问题情景如标题,具体错误如下图: 出现以上情况,是程序将 .asmx 文件按控制器方式解析了,在 RouteConfig.cs 文件的 RegisterRoutes 方法中忽略 .asmx 文件,&q ...
- 图文详解远程部署ASP.NET MVC 5项目
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...
- 图文详解远程部署ASP.NET MVC 5项目 [转载]
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...
- ASP.NET MVC 5项目
图文详解远程部署ASP.NET MVC 5项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专 ...
随机推荐
- layui 表格在排序之后没有重新渲染问题
问题描述: 在layui表格中,最后一列增加了操作按钮,并且在某些行设置了样式,但是在排序之后,按钮的点击事件失效了,样式也没有了,可能是没有执行done回调 原因: done回调只有在render和 ...
- 手动安装OpenCV下的IPP加速库
写在前面 安装opencv的时候,往往会卡在这里: IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz 其实就是墙的原因,然后 ...
- 【RL-TCPnet网络教程】第17章 RL-TCPnet之UDP通信
第17章 RL-TCPnet之UDP通信 本章节为大家讲解RL-TCPnet的UDP通信实现,学习本章节前,务必要优先学习第16章UDP用户数据报协议基础知识.有了这些基础知识之后,再搞本章 ...
- Mysql索引最左匹配原则
先来看个例子: 1. 示例1:假设有如下的一张表: DROP TABLE IF EXISTS testTable; CREATE TABLE testTable ( ID BIGINT NOT NUL ...
- APP测试流程的总结
本规范基于app大小版本测试经验总结. 第一阶段:需求分析(技术+产品) 1. 新需求是否合理 2. 新旧需求时否存在冲突 3. 理出测试重点 4. 估算测试时间 5. 不熟悉的需求点,确认(负责人, ...
- [Swift]LeetCode674. 最长连续递增序列 | Longest Continuous Increasing Subsequence
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (s ...
- websocket+rabbitmq实战
1. websocket+rabbitmq实战 1.1. 前言 接到的需求是后台定向给指定web登录用户推送消息,且可能同一账号会登录多个客户端都要接收到消息 1.2. 遇坑 基于springbo ...
- Eclipse+Android开发:Android模拟器快捷键
Android模拟器快捷键: 按键 按键作用 Home Home key Home键 ESC Back Key 后退键 F1 Menu key 菜单键 F2 S ...
- 【tiles】简单使用总结
一.简介 tiles是一种JSP布局框架,主要目的是为了将复杂的JSP页面作为一个页面的部分机能,然后组合成一个最终的页面,这种做法便于对各个页面机能的变更和维护,减少代码量,实现代码的重用. til ...
- python3安装sklearn机器学习库
安装sklearn需要的库请全部在万能仓库下载: http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy http://www.lfd.uci.edu/~go ...