c# - 如何解析 set-cookie header 中的名称-值对?

标签 c# .net vb.net string parsing

我正在寻找一种干净的方法来从 httpwebrequest 对象的 set-cookie header 中解析出 2 个变量。

Set-Cookie header中的字符串如下:

X-Mapping-dmogknml=6652DD088AB10EE6A65DD9C700872364;
path=/,ASP.NET_SessionId=f4jg1h55eoqbdk452blsozfl; path=/;
HttpOnly,id=111,status=rejected; expires=Thu, 21-Mar-2013 07:31:55 GMT; path=/,statusDes=
Validation Failed ; expires=Thu, 21-Mar-2013 07:31:55 GMT; path=/,X-Mapping
dmogknml=dmogknml=6652DD088AB10EE6A65DD9C700872; path=/

我基本上想将“status=rejected”中的“rejected”和“statusDes=Validation Failed”中的“validation failed”解析为 2 个字符串变量。我已经在脑海中制定了 2 个解决方案,但它们看起来有点笨拙:

  1. 在“;”上循环和拆分,然后在“,”上拆分,然后在“=”上拆分。
  2. 使用子字符串。

请指教。

最佳答案

您可以使用 Split 的重载它采用 Char 的集合。

 var values = theCookie.Split(new [] {';', ',', '='}, 
                              StringSplitOptions.RemoveEmptyEntries);

然后您可以一次循环遍历 values 两个,寻找键来获取值,或者您可以先转换为字典(使用 LINQ ToDictionary ).

关于c# - 如何解析 set-cookie header 中的名称-值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15578634/

相关文章:

c# - 如何在控制台应用程序中成功运行 Hangfire MemoryStorage 作业?

c# - 为什么 EF 在第一次调用方法中需要很长时间

.net - 如何从我的 DLL 访问 MainForm 中的函数

c# - 多线程访问MapPoint?

c# - 一次在多个表中插入/更新数据的最佳实践

c# - 无法将文件上传到 Azure 存储 C#?

c# - 我应该实例化一个新的委托(delegate)吗?

vb.net - 在 VB.NET 中使用大数组

c# - 代码转换

c# - Web Api 2 与 postman 一起工作但与 Angular 2 一起失败