Ruby http/get cookie格式化

Ruby http/get cookie格式化,ruby,cookies,Ruby,Cookies,通过我的代码,我通过get请求获取cookie: http = Net::HTTP.new('kdfgdfgdfglat.gsdfsdo', 443) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE path = '/gfgdfgdfgfdgdfg' resp, data = http.get(path, {'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64

通过我的代码,我通过get请求获取cookie:

http = Net::HTTP.new('kdfgdfgdfglat.gsdfsdo', 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
path = '/gfgdfgdfgfdgdfg'
resp, data = http.get(path, {'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0', "Cookie" => "dfgdfgdfg=17"})

cookie = resp.response['set-cookie']
Cookie是这样的:

ASP.NET_SessionId=mnxjnm140qvvt4wvlfielud3; domain=.e-dfgdfgdfg.godfgdfgv.pl; path=/; secure; HttpOnly, TSe20548=a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0; Path=/, TS7848cb=98330ff418e3c9a3b2afb5f10398363043e5bb63617303a3523b64a036af3f5e7cfaddf8; path=/; domain=.e-dfgfdgdfgf.godfgdfggv.pdfgdfl, TSe20548_31=88ba62b4efd7e40ff9fa891b1764eb6e43e5bb63617303a3000000000000000000e1d4e1bdb727a5ac9c00848b7c7c770a3b491a57; Path=/ 
但正如您所看到的,我有ASP.NET_SessionId、TSe20548_31等(另外20548是动态的,数字可以是其他的)

我的问题是如何清除和格式化Cookie,以便查看:

ASP.NET_SessionId=mnxjnm140qvvt4wvlfielud3
TSe20548=a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0;TS7848cb=98330ff418e3c9a3b2afb5f10398363043e5bb63617303a3523b64a036af3f5e7cfaddf8;TSe20548_31=88BA62B4EFD7E40FF9FA891B1764EB6E43E5BB63617303A330000000000000E1D4E1BDB727A5AC9C00848B7C7C770A3B491A57


如您所见,我必须只获取cookie及其值,而不获取路径和其他额外信息。我怎么能这样做?这是真的吗?如何从cookie中删除一些数据?所以我需要留下ASP.NET_SessionId和它的值,还有TS***和那些值。我该怎么做呢?

其实没那么难。只需在分号和筛选器上拆分即可。或者扫描字符串以查找您感兴趣的对。大概是这样的:

s1 = "ASP.NET_SessionId=mnxjnm140qvvt4wvlfielud3; domain=.e-konsulat.gov.pl; path=/; secure; HttpOnly, TSe20548=a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0; Path=/, TS7848cb=98330ff418e3c9a3b2afb5f10398363043e5bb63617303a3523b64a036af3f5e7cfaddf8; path=/; domain=.e-konsulat.gov.pl, TSe20548_31=88ba62b4efd7e40ff9fa891b1764eb6e43e5bb63617303a3000000000000000000e1d4e1bdb727a5ac9c00848b7c7c770a3b491a57; Path=/ "

regex = /(?<key>(ASP\.NET_SessionId|TS\w+)=[^;]+)/

a1 = s1.scan(regex).flatten # => ["ASP.NET_SessionId=mnxjnm140qvvt4wvlfielud3", "TSe20548=a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0", "TS7848cb=98330ff418e3c9a3b2afb5f10398363043e5bb63617303a3523b64a036af3f5e7cfaddf8", "TSe20548_31=88ba62b4efd7e40ff9fa891b1764eb6e43e5bb63617303a3000000000000000000e1d4e1bdb727a5ac9c00848b7c7c770a3b491a57"]
a2 = a1.map{|s| s.split('=')} # => [["ASP.NET_SessionId", "mnxjnm140qvvt4wvlfielud3"], ["TSe20548", "a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0"], ["TS7848cb", "98330ff418e3c9a3b2afb5f10398363043e5bb63617303a3523b64a036af3f5e7cfaddf8"], ["TSe20548_31", "88ba62b4efd7e40ff9fa891b1764eb6e43e5bb63617303a3000000000000000000e1d4e1bdb727a5ac9c00848b7c7c770a3b491a57"]]
h1 = Hash[a2] # => {"ASP.NET_SessionId"=>"mnxjnm140qvvt4wvlfielud3", "TSe20548"=>"a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0", "TS7848cb"=>"98330ff418e3c9a3b2afb5f10398363043e5bb63617303a3523b64a036af3f5e7cfaddf8", "TSe20548_31"=>"88ba62b4efd7e40ff9fa891b1764eb6e43e5bb63617303a3000000000000000000e1d4e1bdb727a5ac9c00848b7c7c770a3b491a57"}
s1=“ASP.NET_SessionId=mnxjnm140qvvt4wvlfielud3;域名=.e-konsulat.gov.pl;路径=/;保护HttpOnly,TSe20548=a4ad9705817edcebbdf2e0c3f869b10843e5bb63617303a3523b64a0;路径=/,TS7848cb=98330FF418E3C9A3B2AFB5F10398363043E5BB63617303A353B64A036AF3F5E7CFADDF8;路径=/;domain=.e-konsulat.gov.pl,TSE2054831=88BA62B4EFD7E40FF9FA891B1764EB6E43E5BB63617303A330000000000000E1D4E1BDB727A5AC9C00848B7C7C770A3B491A57;路径=/”
正则表达式=/(?(ASP\.NET_SessionId | TS\w+=[^;]+)/
a1=s1.scan(regex).flatten#=>[“ASP.NET#U SessionId=mnxjnm140qvvt4wvlfielud3”,“TSe20548=A4AD9705817EDCEBBDF2E0C3F869B10843E5BB63617303A353B64A0”,“TS7848cb=98330FF418E3C9A3B2AFB5F10398363043E5BB63617303A323B64A036AF3F5E7CFADF8”TSe20548_31=88BA62B4EFD7E40FF9FA891B1764EB6E43E5BB63617303A330000000000000E1D4E1BDB727A5AC9C00848B7C7C770A3B491A57“]
a2=a1.map{124; s | s.split('=')}#=>[“ASP.NET_SessionId”、“mnxjnm140qvvt4wvlfielud3”]、[“TSe20548”、“A4AD9705817EDCEBB2E0C3F869B10843E5463617303A353B3B64A0”]、[“TS7848cb”、“98330FF418E3C9A3B2AFB5F103983630E54BB637303A3A3A3B64AFF836F537ADD8”]、“TSEU5431”、[“TSEU”88BA62B4EFD7E40FF9FA891B1764EB6E43E5BB63617303A330000000000000E1D4E1BDB727A5AC9C00848B7C7C770A3B491A57“]
h1=散列[a2]#=>{“ASP.NET#U SessionId”=>“mnxjnm140qvvt4wvlfielud3”,“TSe20548”=>“A4AD9705817EDCEBB2E0C3F869B10843E5BB63617303A353B64A0”,“TS7848cb”=>“98330FF418E3C9A3B2AFB5F103983043E5BB63617303A353B64A036AF3F5E7CFADDF8”,“TSe20548”=>”88BA62B4EFD7E40FF9FA891B1764EB6E43E5BB63617303A330000000000000E1D4E1BDB727A5AC9C00848B7C7C770A3B491A57“}

你为什么要这样做?@SergioTulentsev我需要这个,因为我需要)秘密信息啊哈)只需要发送标题…并且需要这样描述below@SergioTulentsev那么我该怎么做呢?我还没有完全得到您想要的。@SergioTulentsev look:cookie包含这样的数据:name=newvalue;expires=date;path=/;domain=。例如但是我必须只选择名称,它的值,没有任何路径等等