以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- headers中增加cookie键值对 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179996) |
-- 作者:rxbdchrx -- 发布时间:2022/9/22 11:50:00 -- headers中增加cookie键值对 以下程序测试headers中增加cookie键值对,在服务器项目中发现请求的headers中没有cookie键值对 Dim mystring As String Dim mycookie As String = "ddjdjjjdjd" Dim hctest As New HttpClient("http://157.116.12.172:32188/Web_api" ) hctest.C hctest.Headers.Add("cookie",mycookie) Dim jotest As New JObject jotest("jsonrpc") = "2.0" output.Show( jotest.Tostring ) Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 hctest.Content = jotest.Tostring mystring = hctest.GetData() output.Show( mystring ) 但是如果把程序修改如下(把键值对的键名改为mycookie),测试OK Dim mystring As String Dim mycookie As String = "ddjdjjjdjd" Dim hctest As New HttpClient("http://157.116.12.172:32188/Web_api" ) hctest.C hctest.Headers.Add("mycookie",mycookie) Dim jotest As New JObject jotest("jsonrpc") = "2.0" output.Show( jotest.Tostring ) Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls12 hctest.Content = jotest.Tostring mystring = hctest.GetData() output.Show( mystring ) 请教专家,如果一定要增加键名为cookie的键值对,有什么办法。 [此贴子已经被作者于2022/9/22 11:53:50编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/9/22 11:53:00 -- http://www.foxtable.com/mobilehelp/topics/0158.htm |
-- 作者:rxbdchrx -- 发布时间:2022/9/22 13:09:00 -- 再请教老师cookie中如何包含特殊字符? |
-- 作者:有点蓝 -- 发布时间:2022/9/22 13:28:00 -- html编码后在放入cookie::http://www.foxtable.com/mobilehelp/topics/0241.htm |
-- 作者:rxbdchrx -- 发布时间:2022/9/22 15:35:00 -- 编码后也不行 Dim mystring As String Dim mycookie As String = "bGxqZ2wuZA3ZFxlv7pwEa3OvCTKAdA==" Dim hctest As New HttpClient("http://157.116.12.172:32188/Web_api" ) hctest.C Dim jotest As New JObject jotest("jsonrpc") = "2.0" hctest.sCookies.Add("Session-Id",UrlEncode(mycookie)) hctest.Content = jotest.Tostring mystring = hctest.GetData() 运行以上程序后 服务器端cookies如下 Session-Id:bGxqZ2wuZA3ZFxlv7pwEa3OvCTKAdA%3d%3d 服务器端headers如下 Cookie:Session-Id=bGxqZ2wuZA3ZFxlv7pwEa3OvCTKAdA%253d%253d 如果不编码直接放入sCookies hctest.sCookies.Add("Session-Id",UrlEncode(mycookie)) ----》 hctest.sCookies.Add("Session-Id",mycookie) 服务器端cookies如下 Session-Id:bGxqZ2wuZA3ZFxlv7pwEa3OvCTKAdA== 服务器端headers如下 Cookie:Session-Id=bGxqZ2wuZA3ZFxlv7pwEa3OvCTKAdA%3d%3d 请教老师如何才能做到 服务器端cookies 服务器端headers 都正常? |
-- 作者:有点蓝 -- 发布时间:2022/9/22 15:38:00 -- 11 [此贴子已经被作者于2022/9/22 15:39:51编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/9/22 15:43:00 -- 那么就不要编码了。服务器端headers取值的时候进行一次解码。正常来说直接取cookie即可,不需要取服务器端headers里的cookie |
-- 作者:rxbdchrx -- 发布时间:2022/9/22 15:46:00 -- 关键是服务器端接口是固定死的:不是直接取cookie,而是取服务器端headers里的cookie |
-- 作者:有点蓝 -- 发布时间:2022/9/22 16:02:00 -- 服务器端headers是自己加解码的,如果取不到: 要么存入的数据不符合规范,如果做接口,加密的数据正常都会进行base64编码,以防出现"=="这种需要加解码的情况 要么就是服务端的设计有问题,没有进行正确的解码
|