我正在寻找一种干净的方法来从 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 个解决方案,但它们看起来有点笨拙:
- 在“;”上循环和拆分,然后在“,”上拆分,然后在“=”上拆分。
- 使用子字符串。
请指教。
最佳答案
您可以使用 Split
的重载它采用 Char
的集合。
var values = theCookie.Split(new [] {';', ',', '='},
StringSplitOptions.RemoveEmptyEntries);
然后您可以一次循环遍历 values
两个,寻找键来获取值,或者您可以先转换为字典(使用 LINQ ToDictionary
).
关于c# - 如何解析 set-cookie header 中的名称-值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15578634/