首页新闻找找看学习计划

WebAPI中如何存取Cookie

1
悬赏园豆:50 [已解决问题] 解决于 2014-07-08 22:55
[HttpPost]
        public string ChangePassword(ChangePasswordParam param)
        {
//........相关处理代码
        }

比如我有如上的一个Action 在WebAPI中(我这边用的.NET4.0 所以上的不是WebAPI2.0) 如何取得Cookie并写入Cookie?

 

原先我一直是用HttpContext.Current.Request.Cookies["*****"]和 HttpContext.Current.Response.Cookies["*****"]来实现读取写入Cookie的 但是在WebAPI下好像不管用

 

网上查找资料貌似说返回值如果类型是HttpResponseMessage的话可以在里面加入Cookie 但是我并不想改变我这些Action的方法签名 否则我所有的Action都要改成返回值为HttpResponseMessage的了

happycat1988的主页 happycat1988 | 初学一级 | 园豆:163
提问于:2014-07-08 00:26
< >
分享
最佳答案
0

解决了 事实上是可以读取写入的 没有问题 之前是因为我同事安卓哪里调用WebAPI 传了不能识别的useragent过来 所以在Request.Browser.Cookies哪里判定浏览器不支持cookies 所以响应头里面始终找不到set-cookie

happycat1988 | 初学一级 |园豆:163 | 2014-07-08 22:53
其他回答(5)
0

其实你现在返回的CLR类型也会被自动分装成HttpResponseMessage, 如果你返回的是HttpResponseMessage,这就会让你有更多的机会和HTTP 协作, 比如你可以设置返回的http status, 或者设置header, 设置cache等等,  这样才能更符合web api的含义(有状态码等), 否则的话很多场景其实都可以用普通的mvc直接搞定了。

建议转成HttpResponseMessage

收获园豆:13
._ | 园豆:297 (菜鸟二级) | 2014-07-08 04:53

就是因为我不想转成HttpResponseMessage才来问的 否则所有Action清一色都是HttpResponseMessage 看一个方法要判断出返回类型还要仔细查代码

支持(0) 反对(0) happycat1988 | 园豆:163 (初学一级) | 2014-07-08 05:20
0

什么叫好像不管用?

收获园豆:13
Launcher | 园豆:45045 (高人七级) | 2014-07-08 08:31
0

在webapi里操作cookie?还不如直接用mvc控制器呢

收获园豆:12
吴瑞祥 | 园豆:28770 (高人七级) | 2014-07-08 10:07
0

你是要把cookie传到wenApi里面做处理?

收获园豆:12
晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-08 14:13
0

怎么解决的,我也遇到同样的问题

Request.Browser.Cookies这里在哪设置

 

mzoy | 园豆:202 (菜鸟二级) | 2016-12-23 13:12
HttpContext.Current.Response.Cookies.Add(new HttpCookie("testCookie", "this is a test"));

类似于这样就能设置Cookies了 话说2年前的问题都被你翻出来了.......

支持(2) 反对(0) happycat1988 | 园豆:163 (初学一级) | 2016-12-23 23:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册