簡體   English   中英

C#HttpWebRequest Cookie未傳輸

[英]C# HttpWebRequest Cookies not transmitted

我試圖用從客戶機到服務器 (沒有可用的響應,其中,所述餅干可以提取)一個初始請求傳輸兩個手動創建的Cookie使用以下代碼(如所討論的例如此處

HttpWebRequest request = 
      (HttpWebRequest)HttpWebRequest.Create(
      "https://intra.group.net:5115/app/search.do");

//...

CookieContainer oCookies = new CookieContainer();
CookieCollection cookieGroup = new CookieCollection();
Cookie c1 = new Cookie("name1", "value1", "/", ".intra.group.net");
Cookie c2 = new Cookie("name2", "value2", "/", ".intra.group.net");
cookieGroup.Add(c1);
cookieGroup.Add(c2);
oCookies.Add(cookieGroup);
request.CookieContainer = oCookies;

但是原始通信不包含(根據Fiddler)任何Cookie數據。 有什么建議為什么他們不見了? 提前非常感謝您!

也許是一些同步問題。 有時,由於安全原因,Document.Cookie中缺少HttpOnly cookie。您可以在此處嘗試此解決方案。

Cookies在HttpWebRequest中接收,未發送。

它們通過WebReponse發送。

-> HttpContext.Current.Request:包含收到的Cookie

-> HttpContext.Current.Response:包含發送回瀏覽器的cookie。

將您的cookie添加到響應而不是請求中。

HttpCookie cookie = HttpContext.Current.Response.Cookies["someCookie"]
if (cookie != null)
  HttpContext.Current.Response.Cookies.Remove(cookie);

HttpCookie updatedCookier = new HttpCookie....
HttpContext.Current.Response.Cookies.Add(updatedCookie);

我不確定這是否適合您,但是幾個月前,我在手動將Cookie粘貼到HttpWebrequest中時做了類似的操作,所以請嘗試以下操作:

假設postReq = WebRequest。

HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create("SomeUrl");
postReq.Headers.Add("Cookie: PREF=ID=17337a16083851b1:");// You can get this from fiddler

全部張貼在一行中...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM