WebAPI的Get和Post访问

时间:2022-12-22 08:58:12
        /// <summary>
/// MVC 调用webapi接口返回框架快捷按钮和一级菜单(Get)
/// </summary>
/// <param name="userId">登录名</param>
/// <param name="sysShortName">系统简称 如:crm scm ssn</param>
/// <param name="pwd">密码</param>
/// <param name="factoryId">工厂编号</param>
/// <returns></returns>
public ShortcutResult ReturnShortcutBtn(string userId, string sysShortName, string pwd, string factoryId)
{
ShortcutResult shrotcut_result = new ShortcutResult();
try
{
using (var httpClient = new HttpClient())
{
string WebAPIUrl = string.Format(ReturnAppSettingValue("OAShortcut") + "?sysShortName={0}&uid={1}&pwd={2}&factoryId={3}", sysShortName, userId, pwd, factoryId); var task = httpClient.GetAsync(WebAPIUrl);
var result = task.Result.Content.ReadAsStringAsync().Result;
if (task.Result.IsSuccessStatusCode == false)
throw new Exception("接口访问失败:" + task.Result.StatusCode); MenuResult list = JsonConvert.DeserializeObject<MenuResult>(result); if (list != null && list.Success)
{
var firstMenu = JsonConvert.DeserializeObject<List<FirstLvlMenu>>(list.Menu).OrderBy(t => t.Menu_order).ToList();
var btns = JsonConvert.DeserializeObject<List<ShortCutBtn>>(list.Button).OrderBy(t => t.Btn_Order).ToList(); shrotcut_result = new ShortcutResult(firstMenu, btns);
}
else
{
throw new Exception("WebAPI无值返回或访问失败");
}
}
}
catch (Exception ex)
{
WriteLog(ex.Message, LogEnum.Error);
throw ex;
} return shrotcut_result;
}

  

        /// <summary>
/// MVC 调用webapi接口返回退货单详情页操作按钮(Post)
/// </summary>
/// <returns></returns>
public MenuCommand ReturnCommandBtn(string userId, string menuId, string pwd, string factoryId)
{
MenuCommand menuCmd_result = new MenuCommand();
try
{
using (var httpClient = new HttpClient())
{
string WebAPIUrl = ReturnAppSettingValue("ReturnGoodsCommandBtn");
HttpContent postContent = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"menuId",menuId},
{"uid",userId},
{"pwd",pwd},
{"factoryId",factoryId}
});
var task = httpClient.PostAsync(WebAPIUrl, postContent);
var result = task.Result.Content.ReadAsStringAsync().Result;
if (task.Result.IsSuccessStatusCode == false)
throw new Exception("接口访问失败:" + task.Result.StatusCode); if (!string.IsNullOrEmpty(result))
{
menuCmd_result = JsonConvert.DeserializeObject<MenuCommand>(result);
}
}
}
catch (Exception ex)
{
WriteLog(ex.Message, LogEnum.Error);
throw ex;
} return menuCmd_result;
}

  

        //传递Json格式串

     /// <summary>
/// 返回Token
/// </summary>
/// <returns></returns>
public APIToken ReturnToken(string userId, string pwd)
{
APIToken token = new APIToken();
try
{
string WebAPIUrl = ReturnAppSettingValue("ReturnGoodsToken");
string postData = "{\"UserId\":\"" + userId + "\",\"PassWord\": \"" + pwd + "\"}"; HttpContent httpContent = new StringContent(postData);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpClient httpClient = new HttpClient(); HttpResponseMessage response = httpClient.PostAsync(WebAPIUrl, httpContent).Result; if (response.IsSuccessStatusCode)
{
string responseJson = response.Content.ReadAsStringAsync().Result;
token = JsonConvert.DeserializeObject<APIToken>(responseJson);
}
else
{ } }
catch (Exception ex)
{
WriteLog(ex.Message, LogEnum.Error);
throw ex;
}
return token;
}

  

WebAPI的Get和Post访问的更多相关文章

  1. As&period;net WebAPI CORS&comma; 开启跨源访问&comma;解决错误No &&num;39&semi;Access-Control-Allow-Origin&&num;39&semi; header is present on the requested resource

    默认情况下ajax请求是有同源策略,限制了不同域请求的响应. 例子:http://localhost:23160/HtmlPage.html 请求不同源API http://localhost:228 ...

  2. Asp&period;Net WebApi 启用CORS跨域访问指定多个域名

    1.后台action指定 EnableCors指定可访问的域名多个,使用逗号隔开 //支持客户端凭据提交,指定多个域名,使用逗号隔开 [EnableCors("http://localhos ...

  3. WebApi&lpar;三&rpar;-属性路由 自定义访问路径

    启用属性路由: 1.在WebApiConfig中加入如下代码: //属性路由 config.MapHttpAttributeRoutes();

  4. WebApi不支持跨域访问

  5. WebApi PUT与DELETE类型访问报错

    * 方法一 在项目的Web.Config文件加入 <modules> <remove name="WebDAVModule" /> </modules ...

  6. Asp&period;Net WebApi&plus;Microsoft&period;AspNet&period;WebApi&period;Core 启用CORS跨域访问

    WebApi中启用CORS跨域访问 1.安装 Nugget包Microsoft.AspNet.WebApi.Cors This package contains the components to e ...

  7. html网页访问WebAPI中的方法遇到的问题

      1.移动端访问远程服务时,建议使用WebAPI 2.用不同浏览器访问WebAPI时返回的文本格式是不同的,Chrome Firefox将在浏览器中以XML形式显示此列表,IE浏览器将获得Json格 ...

  8. layui表单提交与ajax访问webapi

    啊啊啊啊 这个东西实在很蛋疼啊 每次访问webapi就很老火 这里就一下  以后忘记的话就来查阅 不多说 直接开始 首先html页面 新建一个基于layui的form表单页面LayuiForm.csh ...

  9. WebAPi之SelfHost自创建证书启动Https疑难解惑及无法正确返回结果

    前言 话说又来需求了,之前对于在SelfHost中需要嵌套页面并操作为非正常需求,这回来正常需求了,客户端现在加了https,老大过来说WebAPi访问不了了,这是什么情况,我去试了试,还真是这个情况 ...

随机推荐

  1. CruiseControl&period;Net &lt&semi;buildpublisher&gt&semi;部署到远程机器报错的解决办法

    CruiseControl.Net ,使用<buildpublisher>将编译后的程序部署到远程机器时,使用以下配置 <buildpublisher> <sourceD ...

  2. 初识JQuery

    轻量级的js库 兼容各种浏览器+css3 传统:js+DHTM   jq:解放了客户端的编程, 环境搭建 进入官方网站获取最新的版本 http://jquery.com/download/  ,这里需 ...

  3. 使用 IntelliJ IDEA 导入 Spark源码及编译 Spark 源代码

    1. 准备工作 首先你的系统中需要安装了 JDK 1.6+,并且安装了 Scala.之后下载最新版的 IntelliJ IDEA 后,首先安装(第一次打开会推荐你安装)Scala 插件,相关方法就不多 ...

  4. 谈谈JPA-03-基本注解

    @Entity @Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表.如声明一个实体类 Customer,它将映射到数据库中的 customer 表上. @T ...

  5. java&period;net&period;BindException&colon; Address already in use&colon; bind

    环境:jxse-2.7, netty-3.6.6.Final 现象:每次执行都抛出以下异常 八月 08, 2013 8:45:19 下午 net.jxta.logging.Logging logChe ...

  6. KMP模版

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; ]; void ...

  7. &period;Net课程体系

    .Net课程体系

  8. COCOS2D-X之帧动画的一种实现Demo

    这个Demo主要是实现帧动画,建议游戏中少用帧动画.废话少说直接上代码. 一.我们直接在COCOS2D-X自带的HelloCpp的工程中添加代码即可.我们在初始化中添加如下代码并附上图片资源. CCS ...

  9. 使用Python定制词云

    一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代 ...

  10. python网站开发准备ubuntu14&period;04安装mysql实现windows管理

    sudo apt-get install mysql-server mysql-client 输入root密码 然后确认安装tab选定确认 输入数据库密码 重复输入 启动 sudo service m ...