c# - एक सेट-कुकी सत्र आईडी के लिए HttpWebResponse.Headers.Keys का विश्लेषण कैसे करें




cookies httpwebrequest (3)

मैं एक एएसपी.NET वेबसाइट के साथ एक HttpWebRequest / HttpWebResponse सत्र बनाने की कोशिश कर रहा हूं, बाद में यूआरएल पैरा के माध्यम से एक HTML फॉर्म को पार्स करने के लिए (इस भाग में मुझे पता है कि कैसे करना है), लेकिन मुझे समझ में नहीं आता कि कुकी कैसे पार्स और सेट करें सत्र आईडी फिडलर में, यह दिखाता है कि यूएसएल के अनुरोध / अनुरोध के जवाब में एएसपी.NET सत्र आईडी सेट-कुकी के माध्यम से वापस आती है, लेकिन मैं इस सत्र आईडी को कैसे निकाल सकता हूं और इसे अगले HttpWebRequest के लिए कुकी के रूप में सेट कर सकता हूं ? मैं समझता हूं कि यह सेट-कुकी हेडर HttpWebResponse.Headers.Keys में मिलेगा, लेकिन क्या इसे पार्स करने का सीधा पथ है? धन्यवाद!


.NET ढांचा आपके लिए कुकीज़ का प्रबंधन करेगा। आपको हेडर से कुकी जानकारी को पार्स करने या अपने अनुरोधों में कुकी हेडर जोड़ने के साथ स्वयं को चिंता करने की ज़रूरत नहीं है।

अपनी सत्र आईडी को स्टोर और भेजने के लिए, Cookie और Cookie 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


दान हरबर्ट के जवाब ने मुझे वास्तव में मदद की। तुम्हारी सहायता सराहनीय है।

बस मेरा उपयोग पोस्ट करना चाहते हैं - उम्मीद है कि यह किसी समय पर किसी को मदद करता है। मेरी आवश्यकता यह है कि मुझे पहले http पोस्ट अनुरोध से पहले http पोस्ट अनुरोध से कुकीज़ वापस भेजने की आवश्यकता है।

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;

हम गलत हो सकते हैं लेकिन जो हाल ही में मैं देख रहा हूं उससे

पहली प्रतिक्रिया से कुकीज़, 302 (रीडायरेक्ट) स्थिति के मामले में हेडर में आने वाली कुकीज़ के रूप में 'सेट कुकी' शामिल नहीं करें (उदाहरण के लिए कुछ सत्र आईडी ...)

यदि autofollowredirect को सत्य पर सेट किया गया है, तो सेट कुकी संसाधित की जाती है, और बाद में अनुरोध जो स्वचालित रूप से किया जाता है, में पहली कुकी पर सेट कुकी द्वारा परिभाषित उन कुकीज शामिल होंगे

यदि autofollowredirect को गलत पर सेट किया गया है तो पहला अनुरोध सेट कुकी द्वारा पोजिशन किए गए कुकीज़ नहीं प्राप्त करता है, और मुझे लगता है और यह भी मेरा खोज है यदि कोई जानता है कि बाद में उन अनुरोधों को अगले अनुरोध में रखने का एकमात्र तरीका है, तो पार्स सेट कुकीज़?





setcookie