MVC接口式开发 封装统一请求方法

  由于公司需要用到接口式开发,所以所以业务逻辑都写在webapi ,web端主要做调用,为了使开发方便,特此封装出统一请求的方法,页面调用只需写接口地址就行,话不多说,直接上代码。

 1 public class ProxyHandlerController : BaseController
 2 {
 3         //
 4         // GET: /ProxyHandler/
 5         public ActionResult ProcessRequest()
 6         {
 7             try
 8             {
 9                 var Request = HttpContext.Request;
10                 string url = Request.QueryString["_URL"].ToString();
11                 var parameters = new Dictionary<string, string>();
12                 if (Request.HttpMethod.ToUpper() == "POST")
13                 {
14                     foreach (var item in Request.Form.Keys)
15                     {
16                         parameters.Add(item.ToString(), Request.Form[item.ToString()].ToString());
17                     }
18                 }
19                 else
20                 {
21                     foreach (var item in Request.QueryString.Keys)
22                     {
23                         if (item.ToString() != "_URL")
24                         {
25                             parameters.Add(item.ToString(), Request.QueryString[item.ToString()].ToString());
26
27                         }
28                     }
29                 }
31                 var response = HttpRequestHelp.sendRequest(ProjectConst.ApiUrl + url, parameters, Request.HttpMethod, LogOnModel.token);
32                 return Json(response, JsonRequestBehavior.AllowGet);
33             }
34             catch (Exception e)
35             {
36                 return Json(e.Message, JsonRequestBehavior.AllowGet);
37             }
38         }  }

原文地址:https://www.cnblogs.com/sanfor/p/8951784.html

时间: 2024-10-08 15:35:01

MVC接口式开发 封装统一请求方法的相关文章

MVC 插件式开发

在开发一个OA系统是,我们可能遇到 A模块. B模块 .C模块,这也模块组成一个完整的系统,买给客服.现在又有一个客服要我们做一个OA系统,唉我们发现,跟上一个OA系统差不多,但没有C模块.怎么办? 修改源码,系统简单还好,但是一系统复杂到一定程度,修改源码改这改这就像重写了! 怎么办,MVC插件式开发帮你解决问题,先看演示,再看代码.CCAV.WebSite 是主站,引用 CCAV.Modules.Category CCAV.Modules.Category 就像当于一个模块,具体看演示. 通

MVC插件式开发平台

---恢复内容开始--- 经过DyOS.BraveOS1.0再到BraveOS2.0,系统现在已经开发了下载. 我们的目标是,网页版操作系统,可以在线安装更新软件,并提供二次开发平台,提供基础的逻辑和控件,我们将在后期公开开发文档,如果您不会html5,不会自己写js插件,那么这将是您的福音,因为,这些事我们会为你来更新完善!您只管用就行,哈哈. 我们的系统不支持IE这个老东西,支持谷歌内核所有浏览器. 由于官方网站即将发布,将随官方网站和二次开发文档一起发布,请持续关注www.braveos.

【转】Postman接口测试之POST、GET请求方法

转自竹小冉: https://www.cnblogs.com/zhuxr/p/9009708.html 一.基础知识 1.HTTP的五种请求方法:GET, POST ,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法. GET请求:请求指定的页面信息,并返回实体主体.(通常用来接收数据). POST请求:向指定资源提交数据进行处理请求,数据被包含在请求体中.POST请求可能会导致新的资源的建立.已有资源的修改.(通常用来发送数据). HEAD请求:类似于

小程序开发——统一请求方法

一般我们习惯将请求接口的方法统一起来,变成公共方法 但是在小程序中,似乎遇到了一些问题,官方给的示例是: this.setData({ name: 'MINA' }) this局限了请求的地方,似乎只能在每个业务页面内,setData方法的参数不够配置化 以下是我参考一些资料之后得到的解决方案 util.js var apiHost = "....."; //url添加最后的相对路径即可 function getRequest(url, that, targetName) { wx.r

Spring mvc注解式开发入门

java类 package com.cloud.po; import Java.util.Date; public class Items { private Integer id; private String name; private Float price; private String pic; private Date createtime; private String detail; public Integer getId() { returnid; } public void

SpingMVC_注解式开发_接收请求参数

一.逐个接收 1 import org.springframework.stereotype.Controller; 2 import org.springframework.web.bind.annotation.RequestMapping; 3 import org.springframework.web.servlet.ModelAndView; 4 5 @Controller // 表示当前类是一个处理器 6 @RequestMapping("/test") 7 public

零基础ASP.NET Core MVC插件式开发

//services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);            services.AddMvc().ConfigureApplicationPartManager(apm =>            {                // 和主项目里面注册插件项目类似,这里注册主程序dll,主要是为了在vs里面直接运行调试,不需要发布到主项目用主项目来运行             

微信小程序开发——使用promise封装异步请求

前言: 有在学vue的网友问如何封装网络请求,这里以正在写的小程序为例,做一个小程序的请求封装. 关于小程序发起 HTTPS 网络请求的Api,详情可以参考官方文档:wx.request(Object object). 如果直接使用官方提供的个Api,那么每次在进行网络请求调用时,我们都要按官方文档上说的那样传递需要设置的请求参数,然后对不同的请求相应结果做不同的处理.但是前端同服务器端的接口请求中有大部分的请求参数以及响应结果处理都是很类似的,也就没有必要对所有请求代码都重新敲敲一遍,那么对原

axios请求方法封装.

axios的使用上一般封装好对应的方法,ES6导出,直接调用,消息通知使用了ElementUI的Message组件. 这是一个封装了axios的Rest风格的工具类,包扩常用的POST,GET,PUT,DELETE, 在请求处理上使用统一的请求拦截处理.对返回的消息进行拦截预处理,有数据返回数据,没有返回消息. import axios from 'axios' import router from '../router' import { Message } from 'element-ui'