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项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专 ...
随机推荐
- 04.封装ajax
<script> //封装ajax // 函数名 ajax // 函数的参数 // url: 请求的地址 // type: 请求的方式 get /post // data: 要上传的数据 ...
- Three.js学习笔记03--光
1. 光源基类 在Threejs中,光源用Light表示,它是所有光源的基类.它的构造函数是: THREE.Light ( hex ) 它有一个参数hex,接受一个16进制的颜色值.例如要定义一种红色 ...
- JavaScript 功能类 Url.js
简书原文 这个类的主要目的是为了方便平时编码中的Url类型的数据操作 Github 全局名称 全局名称是由源码的最后一行代码确定的,默认为Url,如存在相同名称的对象会抛出异常: 可以通过 requi ...
- MySQL 分区建索引
200 ? "200px" : this.width)!important;} --> 介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张 ...
- 时时监听input内容的改变
心得:我们都知道input有一个change事件,但是是在input元素失去焦点的时候发生,不能时时的监听input内容的改变. 刚开始的时候我是想用setInterval设置计时器的原理定时监听in ...
- Spring的核心接口
ContextLoaderListener接口 Create a new ContextLoaderListenerthat will create a web application context ...
- [Swift]LeetCode815. 公交路线 | Bus Routes
We have a list of bus routes. Each routes[i]is a bus route that the i-th bus repeats forever. For ex ...
- [Swift]LeetCode855. 考场就座 | Exam Room
In an exam room, there are N seats in a single row, numbered 0, 1, 2, ..., N-1. When a student enter ...
- Python面试真题第一节
1.一行代码实现1--100之和 2.如何在一个函数内部修改全局变量 3.列出5个python标准库 4.字典如何删除键和合并两个字典 5.谈下python的GIL 6.python实现列表去重的方法 ...
- php 168任意代码执行漏洞之php的Complex (curly) syntax
今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHt ...