Foxtable(狐表)用户栏目专家坐堂 → headers中增加cookie键值对


  共有6930人关注过本帖树形打印复制链接

主题:headers中增加cookie键值对

帅哥哟,离线,有人找我吗?
rxbdchrx
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:1658 威望:0 精华:0 注册:2012/5/18 23:26:00
headers中增加cookie键值对  发帖心情 Post By:2022/9/22 11:50:00 [只看该作者]

以下程序测试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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/22 11:53:00 [只看该作者]

http://www.foxtable.com/mobilehelp/topics/0158.htm

 回到顶部
帅哥哟,离线,有人找我吗?
rxbdchrx
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:1658 威望:0 精华:0 注册:2012/5/18 23:26:00
  发帖心情 Post By:2022/9/22 13:09:00 [只看该作者]

再请教老师cookie中如何包含特殊字符?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/22 13:28:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
rxbdchrx
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:1658 威望:0 精华:0 注册:2012/5/18 23:26:00
编码后也不行  发帖心情 Post By: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  都正常?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/22 15:38:00 [只看该作者]

11
[此贴子已经被作者于2022/9/22 15:39:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/22 15:43:00 [只看该作者]

那么就不要编码了。服务器端headers取值的时候进行一次解码。正常来说直接取cookie即可,不需要取服务器端headers里的cookie

 回到顶部
帅哥哟,离线,有人找我吗?
rxbdchrx
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:85 积分:1658 威望:0 精华:0 注册:2012/5/18 23:26:00
  发帖心情 Post By:2022/9/22 15:46:00 [只看该作者]

关键是服务器端接口是固定死的:不是直接取cookie,而是取服务器端headers里的cookie

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/22 16:02:00 [只看该作者]

服务器端headers是自己加解码的,如果取不到:

要么存入的数据不符合规范,如果做接口,加密的数据正常都会进行base64编码,以防出现"=="这种需要加解码的情况
要么就是服务端的设计有问题,没有进行正确的解码

 回到顶部