WebAPI的学习简单分析

来源:互联网 发布:英文缩写查询软件 编辑:程序博客网 时间:2024/06/05 06:15

Webservice(比较老) 少数在使用,还是以前的老项目

WCF(.net):使用比较广,对内

WebAPI(对外)

就是发送一个http请求,返回xml(默认的格式)与json
返回值,清晰简单解析方便所以一般对外

Webapi属于mvc项目中一部分

Webapi对外:给android,ios提供数据 绝大多数使用webapi接口提供数据

Get:获取内容,查询
Post:提交内容,添加

Put:更新
Delete:删除

Mvc中访问方式是由什么决定的?

自定义路由~

webapi访问方式:
api/控制器名字/id(参数可选)

如果发送get请求访问的就是get

如果访问post:必须发送post请求

webapi获取post提交的参数:

1:使用request
2:封装一个dto
3:只传值不传键

WebAPI增加方法

 Webapi标准,get方式访问就访问get方法,post方式访问就请求post方法;总:请求方式决定访问的方法

使用代码请求WebAPI

方法1:webrequest(旧)

方法2:httpclient(新)
异步支持得很好

需要添加dll,sysetm.net.http

Wcf三种异步请求方法
Async,await

这是在WcfService1创建的
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“UsersService”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 UsersService.svc 或 UsersService.svc.cs,然后开始调试。
public class UsersService : IUsersService
{
public List GetUsers(string _keycode)
{
if (string.IsNullOrEmpty(_keycode))
{

            return null;//请提供授权码        }        UserDAL ud = new UserDAL();        wcf_Users wu = ud.GetWCF_UsersByKeyCode(_keycode);        //判断用户的授权码是不是有效        if (wu == null)        {            return null;//授权码无效        }        //判断用户的授权码是否过期        if (DateTime.Now > wu.ExpDate)        {            return null;//授权码已经过期        }       return ud.GetList();    }}这是在WcfService1下创建的

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format(“You entered: {0}”, value);
}

    public CompositeType GetDataUsingDataContract(CompositeType composite)    {        if (composite == null)        {            throw new ArgumentNullException("composite");        }        if (composite.BoolValue)        {            composite.StringValue += "Suffix";        }        return composite;    }}

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{

    [OperationContract]    string GetData(int value);    [OperationContract]    CompositeType GetDataUsingDataContract(CompositeType composite);    // TODO: 在此添加您的服务操作}// 使用下面示例中说明的数据约定将复合类型添加到服务操作。[DataContract]public class CompositeType{    bool boolValue = true;    string stringValue = "Hello ";    [DataMember]    public bool BoolValue    {        get { return boolValue; }        set { boolValue = value; }    }    [DataMember]    public string StringValue    {        get { return stringValue; }        set { stringValue = value; }    }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高血压200降不下去.怎么办 高血压吃药降不下来怎么办 合肥房子卖了户口怎么办 吃了粽子胃难受怎么办 突然血压高怎么办需要吃药吗? 胃一阵阵疼然后拉肚子怎么办 橱子和墙壁不平怎么办 复印选项是英文不认识怎么办 防盗门锁与门框结合不好怎么办 仿瓷涂料墙壁脏了怎么办 油笔画到墙纸上怎么办 水笔画在墙纸上怎么办 屋里有股石灰味怎么办 厨房太阳对着晒怎么办 房子有太阳西斜怎么办 房子晒到太阳很热怎么办 房子被太阳热了怎么办 房间西晒窗帘不遮光怎么办 新建房屋一面墙体有裂缝怎么办 卫生间地砖缝隙出现渗水怎么办 西户窗户太晒怎么办 西晒的墙面很烫怎么办 儿童房颜色太粉了怎么办? 小孩在家里偷钱怎么办 脾气不好的猫该怎么办 二年孩子偷钱怎么办 孩子偷钱2000报警怎么办? 我儿子十岁老是偷钱怎么办 13孩子偷同学钱怎么办 孩子偷同学的钱怎么办 儿子十四岁了老偷钱怎么办 发现初中生的儿子偷钱怎么办 被亲戚怀疑儿子偷钱怎么办 房门选的太白了怎么办 大厅地砖颜色比墙砖浅怎么办 房屋外墙渗水物业不管怎么办 走丢了怎么办教学反思 托班教案迷路了怎么办 大班安全教案遇到小偷怎么办 小班孩子舞台表演找不到位置怎么办 懂你英语学完了怎么办