.net WebService方法之重载、支持Session、支持request请求和response格式的浅析
.net的webservice不支持web方法的重载,但是可以通过设置WebMethod属性的MessageName字段来达到重载web方法的目的。
通过设置WebMethod属性的EnableSession=true,可让webservice支持session。
通过设置ScriptMethod属性的UseHttpGet=false,可让web方法只接受post请求;如果UseHttpGet=true,可让web方法接受get请求。
通过设置ScriptMethod属性的ResponseFormat,可设置web方法响应的格式。如:ResponseFormat = ResponseFormat.Json。
上代码说明:
.net的webservice代码:
[WebMethod(Description = "验证登录操作", EnableSession = true, MessageName = "Login")]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public Result Login(string userName, string pwd) {
Result rc = null; try {
if (userName == "" && pwd == "") {
Session["User"] = new UserInfo { UserName = userName, pwd = pwd };
rc = Result.ToResult("true", "登录成功");
}
else rc = Result.ToResult("false", "登录失败");
}
catch (Exception ex) {
// 可以在此保存日志
rc = Result.ToResult("false", ex.Message);
} return rc;
} [WebMethod(Description = "验证登录", EnableSession = true, MessageName = "IsLogin")]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public Result IsLogin() {
Result rc = null; try {
rc = Session["User"] != null ? Result.ToResult("true", "已经登录") : Result.ToResult("false", "暂未登录");
}
catch (Exception ex) {
rc = Result.ToResult("false", ex.Message);
} return rc;
} public class Result {
public string Code { get; set; }
public string Message { get; set; } public static Result ToResult(string code, string message) {
return new Result { Code = code, Message = message };
}
}
同站点下的html代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
function login() {
var url = "http://localhost/wst/Service.asmx/Login";
$.ajax({
url: url,
type: 'POST',
data: '{"userName":"1","pwd":"1"}',//和WebService的web方法的参数一一对应
dataType: 'json',
cache:false,
contentType: 'application/json',//
error: function () { },
success: function(data){
if (data.d != null) {
alert(data.d.Code+" "+data.d.Message);
}
else alert("请求失败!");
}
});
} </script>
</head>
<body>
<input type="button" value="登录" onclick="login()"/> </body>
</html>
用jQuery的ajax访问同源的webserver方法。
.net WebService方法之重载、支持Session、支持request请求和response格式的浅析的更多相关文章
- webservice方法内用了session,asp.net调用时注意问题
可搜索相关:ASP.NET WebService 中使用 ASP.NET_SessionId 当前问题是:我们写了WebService给客户调用,第一个方法是登陆,传入用户名和密码,成功后在Webse ...
- Struts2中的session、request、respsonse获取方法
个人对于struts有一种复杂的心情,平心而论,struts2是个人最早接触到的的框架,在学校的时候就已经开始学习了,大四毕业设计,无疑用的还是struct,那时候SSH还是很流行的,后来出来实习,直 ...
- WebService中方法的重载
阅读目录 一:WebService中的方法是否允许重载? 二:为什么WebService中不支持方法的重载? 三:如何解决WebService中方法的重载? 一:WebService中的方法是否允许重 ...
- WebApi 能支持Session
由于项目实际需要,我希望让WebApi服务也能支持Session,所以便查找资料按照网上的方法开始着手实验. 然后就有了以下的代码,主要是说让WebApi支持Session,要重写Global.asa ...
- WebAPI支持Session
1.在App_Start/WebApiConfig.cs中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它: public class ...
- MVC4 WebApi开发中如果想支持Session请做好如下几个方面的问题
1.在WebApiConfig中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它 public class SessionRouteH ...
- 为lumen添加session支持
为lumen添加session支持,同时配置全局函数csrf_token可用 首先laravel和lumen框架的版本要一致,我这里版本都是5.4 1.复制laravel框架config目录下的ses ...
- thinkphp session支持
系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成,该函数可以完成Session的设置.获取.删除和管理操作. session初始化设置 如果session ...
- 对于方法 String.Contains,只支持可在客户端上求值的参数。
var ProjectLevel_XJJS = "06,07,08,09"; p.Where(e =>ProjectLevel_XJJS.Contains(e.LevelCo ...
随机推荐
- luogu3261 懒惰左偏树 [JLOI2015]城池攻占
目录 题目 思路 错误&&反思 代码 题目 luogu 原来左偏树真的能懒惰下放 那这篇博客应该要咕咕了 一开始我按照那篇博客想了一下,感觉emm,还是瞄了一眼看到了pushdown ...
- BZOJ3296: [USACO2011 Open] Learning Languages 并查集
Description 农夫约翰的N(2 <= N<=10,000)头奶牛,编号为1.. N,一共会流利地使用M(1<= M <=30,000)种语言,编号从1 .. M., ...
- 一种斐波那契博弈(Fibonacci Nim)
事实上我也不知道这算是哪个类型的博弈 是在复习$NOIP$初赛的时候看到的一个挺有趣的博弈 所以就写出来分享一下 $upd \ on \ 2018.10.12$忽然发现这个其实就是$Fibonacci ...
- 关于 Local feature 和 Global feature 的组合
关于 Local feature 和 Global feature 的组合 1.全局上下文建模:
- com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
作者原创,转载请注明转载地址 第一次遇到该异常,在网上搜了很长时间也没找到解决答案,特此记录 1.异常展示: com.fasterxml.jackson.databind.JsonMappingExc ...
- Springboot mybatis generate 自动生成实体类和Mapper
https://github.com/JasmineQian/SpringDemo_2019/tree/master/mybatis Springboot让java开发变得方便,Springboot中 ...
- 设置网站URL启动
当新建一个MVC WEB程序 当你打开一个视图按F5运行 这时候并且不能政策运行会出现与个错误 无法找到资源. 这时候站点的默认设置是 把这个个默认设置更改成 红色框框的地方为修改点 你以为这样就完了 ...
- Python requests介绍之接口介绍
Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...
- C#匹配中文
public static bool ContainsChinese(string text) { if (string.IsNullOrEmpty(text)) return false; stri ...
- CSS实现和选择器
CSS实现和选择器 本课内容: 一.实现CSS四种方式 1,每个html标签中都有一个style样式属性,该属性的值就是css代码.(针对一个标签)2,使用style标签的方式. 一般都定义在head ...