返されるSet-CookieのセッションIDのHttpWebResponse.Headers.Keysを解析する方法
-
20-08-2019 - |
質問
私は後でURL paramsは(私が行う方法を知って、この部分)を介してHTMLフォームを解析するためにASP.NETのWebサイトでは、HttpWebRequest / HttpWebResponseのセッションを作成しようとしているが、私は解析し、設定する方法を理解していませんクッキーセッションIDなど。フィドラーでは、ASP.NETのセッションIDがURLの/パスへの要求に応じて設定し、クッキーによって返されることを示しているが、どのように私は、このセッションIDを抽出し、次のHttpWebRequestのためのクッキーとして設定することができます?私は、このSet-CookieヘッダーがHttpWebResponse.Headers.Keysで見つけられることを理解し、それを解析への直接パスはありますか?ありがとう!
解決
.NETフレームワークはあなたのためにクッキーを管理します。あなたは、ヘッダーのうち、クッキー情報を解析したり、リクエストにCookieヘッダーを追加することで自分自身を気にする必要はありません。
Cookie
<使用し、保存して、セッションIDを送信するにはそれらを格納するために/>と CookieContainer
のクラスとその後あなたはすべての要求を使用してクッキーを送信してください。
次の例では、この方法を示しています。 CookieContainer、「cookieJar
は、」複数のドメインとのリクエスト間で共有することができます。あなたがリクエストオブジェクトに追加したら、それへの参照も応答が返されたレスポンスオブジェクトに追加されます。
CookieContainer cookieJar = new CookieContainer();
var request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
request.CookieContainer = cookieJar;
var response = request.GetResponse();
foreach (Cookie c in cookieJar.GetCookies(request.RequestUri))
{
Console.WriteLine("Cookie['" + c.Name + "']: " + c.Value);
}
このコードの出力は次のようになります。
Cookie['PREF']: ID=59e9a22a8cac2435:TM=1246226400:LM=1246226400:S=tvWTnbBhK4N7Tlpu
他のヒント
ダン・ハーバートからの答えは本当に私を助けました。私はあなたの助けに感謝します。
ちょうど私の使用状況を投稿したい - それは時間のいくつかの点でいくつかのいずれかに役立ちます願っています。私の要件は、私は2番目のHTTP POSTリクエストに最初のHTTP POSTレスポンスからクッキーを返送する必要があるということです。
第1回:
CookieContainer cookieJar = new CookieContainer();
request.CookieContainer = cookieJar;
....
CookieCollection setCookies = cookieJar.GetCookies(request.RequestUri);
第2回:
CookieContainer cc = new CookieContainer();
cc.Add(setCookies);
request.CookieContainer = cc;
私は(アマゾンで)同じ問題を抱えています 私は、次の正規表現を使用します:
string regexp = "(?<name>[^=]+)=(?<val>[^;]+)[^,]+,?";);
MatchCollection myMatchCollection = Regex.Matches(cookiesStr, regexp);
foreach (Match myMatch in myMatchCollection)
{
string cookieName = myMatch.Groups["name"].ToString();
string cookieVal = myMatch.Groups["val"].ToString();
Cookie cookie = new Cookie(cookieName, cookieVal);
cookies.Add(cookie);
}
...私はクッキーの名前/値を気にしています
幸運 イーリア
ハム私は間違っているかもしれないが、私は最近見ていたものとは
最初の応答からクッキー、ヘッダに来るクッキー(例えば、いくつかのセッションID ...)「として設定されたクッキーを」含まない302(リダイレクト)状態た場合の
autofollowredirectがtrueに設定されている場合は、、その後、セットクッキーが処理され、最初の呼び出し時に、設定されたクッキーによって定義されたクッキーが含まれます自動的に行われ、その後のリクエスト、
autofollowredirectがfalseに設定されている場合、最初の要求は、設定されたクッキーでpositionnedクッキーを取得していない、と誰もが知っていれば唯一の方法は、その後、次の要求でこれらのクッキーを持っていることを、私は推測すると、これがまた私のquestonです、設定したクッキーを解析するのですか?