[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的了
解决了 事实上是可以读取写入的 没有问题 之前是因为我同事安卓哪里调用WebAPI 传了不能识别的useragent过来 所以在Request.Browser.Cookies哪里判定浏览器不支持cookies 所以响应头里面始终找不到set-cookie
其实你现在返回的CLR类型也会被自动分装成HttpResponseMessage, 如果你返回的是HttpResponseMessage,这就会让你有更多的机会和HTTP 协作, 比如你可以设置返回的http status, 或者设置header, 设置cache等等, 这样才能更符合web api的含义(有状态码等), 否则的话很多场景其实都可以用普通的mvc直接搞定了。
建议转成HttpResponseMessage
就是因为我不想转成HttpResponseMessage才来问的 否则所有Action清一色都是HttpResponseMessage 看一个方法要判断出返回类型还要仔细查代码
什么叫好像不管用?
在webapi里操作cookie?还不如直接用mvc控制器呢
你是要把cookie传到wenApi里面做处理?
怎么解决的,我也遇到同样的问题
Request.Browser.Cookies这里在哪设置
HttpContext.Current.Response.Cookies.Add(new HttpCookie("testCookie", "this is a test"));
类似于这样就能设置Cookies了 话说2年前的问题都被你翻出来了.......