2015-10-05 85 views
1

根據MSDN CookieContainer.SetCookiesCookieContainer.SetCookies只設置第一個

爲一個或多個cookie再添曲奇實例從一個HTTP cookie 頭到的CookieContainer特定URI

其意味着它應該適用於多個cookie,但是當我這樣做時

_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a;b=b"); 

以後嘗試使用

_cookieContainer.GetCookies(new Uri("http://localhost")); 

檢索餅乾我只得到一個cookie的項,這a=a

我想這可能是小甜餅報頭格式不對,所以我用.Add方法手動添加了兩個餅乾,後來試着通過調用.GetCookieHeader來得到標題,我得到完全相同的字符串"a=a;b=b"

我錯過了什麼,或者我發現了一個.NET錯誤?我目前使用

VS2015 - v14.0.23107.0,
.NET - 4.6 4.6.00081

回答

3

你爲什麼不嘗試通過第二個參數相同的方式,MSDN建議對SetCookies的文檔站點:

cookieHeader

類型:System

由HTTP服務器返回的HTTP set-cookie標頭的內容,Cookie實例由逗號分隔。

_cookieContainer.SetCookies(new Uri("http://localhost"), "a=a,b=b"); 
+0

OMG ......我怎麼錯過...... THX笑 – Steve

+0

@Steve偏偏大家每過一段時間:-) – Kapol

+0

任何想法,爲什麼它是一個逗號雖然HTTP頭使用分號? – usr

0

您使用分號來分隔你的cookies,但MSDN docs狀態:

SetCookies翻出所有的HTTP cookies了HTTP cookie頭的,建立一個Cookie的每一個,然後將每個Cookie添加到與URI關聯的內部CookieCollection。 cookieHeader字符串中的HTTP cookie必須用逗號分隔。

(強調)