मैं प्रोग्रामिक रूप से एक विशिष्ट फॉर्म सबमिट करने का प्रयास कर रहा हूं, लेकिन मुझे हमेशा प्रारंभिक पृष्ठ वापस मिलता है। मुझे कुछ गलत करना होगा या यहां कुछ याद आना चाहिए। मैं सत्र कुकी और कुछ पोस्ट डेटा जैसे व्यूस्टेट (जिसे मैं प्रारंभिक अनुरोध से पार्स करता हूं) भेज रहा हूं, और सत्र आईडी (यह वह मान है जो मैं अन्य वर्षों से फॉर्मू डेटा में बदलता हूं)। लेकिन दूसरा अनुरोध में मैं allways डेटा सत्र 899 के लिए, प्राप्त एक के बजाय मैं अनुरोध करते हैं: 875.फॉर्मेटेटिक रूप से फॉर्म सबमिट करना
यहाँ इस्तेमाल किया कोड है :, किसी भी मदद की बहुत
retrieveEdmIndexForSession (875) apreciated है;
protected string retrieveEdmIndexForSession(int sessionId) {
CookieContainer cookies;
HttpWebRequest oRequest;
HttpWebResponse oResponse;
Stream sw;
StreamReader sr;
string pageData;
string PathRemote = @"http://edmi.parliament.uk/EDMi/EDMList.aspx";
/*
* download the index page so we can get Cookies and ViewState from it.
*/
oRequest = (HttpWebRequest)WebRequest.Create(PathRemote);
oRequest.Method = "GET";
oRequest.AllowAutoRedirect = true;
oRequest.CookieContainer = new CookieContainer();
oRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
oRequest.Referer = "http://edmi.parliament.uk/EDMi/EDMList.aspx";
oResponse =(HttpWebResponse) oRequest.GetResponse();
sr = new StreamReader(oResponse.GetResponseStream());
pageData = sr.ReadToEnd();
/*
* extract view state from pageData.
*/
string viewState = this.ExtractViewState(pageData);
/*
* lets submit the form with the parameters we want
*/
oRequest = (HttpWebRequest)WebRequest.Create(PathRemote);
oRequest.Method = "POST";
oRequest.AllowAutoRedirect = true;
oRequest.ContentType = "application/x-www-form-urlencoded";
oRequest.CookieContainer = new CookieContainer();
oRequest.CookieContainer.Add(oResponse.Cookies);
oRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
oRequest.Referer = "http://edmi.parliament.uk/EDMi/EDMList.aspx";
string postdata = "__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=" + viewState + "&_MenuCtrl%3AddlSession=" + sessionId + "&_MenuCtrl%3A_GoTo.x=57&_MenuCtrl%3A_GoTo.y=14&ddlStatus=1&ddlSortedBy=1";
byte[] buffer = Encoding.UTF8.GetBytes(postdata);
oRequest.ContentLength = buffer.Length;
/*
* Send post data into request stream first
*/
sw = oRequest.GetRequestStream();
sw.Write(buffer, 0, buffer.Length);
sw.Flush();
sw.Close();
/*
* Connect, send and get response
*/
oResponse = (HttpWebResponse)oRequest.GetResponse();
sr = new StreamReader(oResponse.GetResponseStream());
//OnLogUpdated(1, "\r\nStatus Code: " + oResponse.StatusCode);
//OnLogUpdated(1, "\r\nServer: " + oResponse.Server);
pageData = sr.ReadToEnd();
string result = getSessionId(pageData);
//OnLogUpdated(1, "\r\nRestuls: [" + result + "]");
//OnLogUpdated(1, "\r\nPage: [" + pageData + "]");
return pageData;
}
private string ExtractViewState(string str)
{
string viewState = "";
string pattern = "(?<=__VIEWSTATE\" value=\")(?<val>.*?)(?=\")";
Match match = Regex.Match(str, pattern);
if (match.Success)
{
viewState = match.Groups["val"].Value;
viewState = HttpUtility.UrlEncodeUnicode(viewState);
}
return viewState;
}
protected string getSessionId(string str)
{
string sessionId = string.Empty;
str = str.Trim();
string pattern = @"&SESSION=([^']+)'";
Match match = Regex.Match(str, pattern, RegexOptions.IgnoreCase);
if (match.Success)
{
sessionId = match.Groups[1].ToString(); ;
}
return sessionId;
}
यह रॉ अनुरोध है .NET स्क्रिप्ट द्वारा भेजा जा रहा है।
पोस्ट /EDMi/EDMList.aspx HTTP/1.1 सामग्री प्रकार: आवेदन/x-www फार्म-urlencoded स्वीकार करें: पाठ/html, आवेदन/xhtml + xml, application/xml; क्ष = 0.9, /; q = 0.8 Referer: http://edmi.parliament.uk/EDMi/EDMList.aspx उपयोगकर्ता-एजेंट: .नेट फ्रेमवर्क ग्राहक मेजबान: edmi.parliament.uk कुकी: ASP.NET_SessionId = k55fqarvx2oszp2wxhtrol45 सामग्री-लंबाई: 2431 की अपेक्षा: 100 -continue
__EVENTTARGET = & __EVENTARGUMENT = & __VIEWSTATE = dDwxMDgyNzIxNDQ2O3Q8O2w8aTwzPjs% 2bO2w8dDw7bDxpPDE% 2bO2k8Mz47aTw1PjtpPDExPjs% 2bO2w8dDw7bDxpPDEzPjtpPDE3Pjs% 2bO2w8dDx0PHA8cDxsPERhdGFWYWx1ZUZpZWxkO0RhdGFUZXh0RmllbGQ7PjtsPFNFU1NJT05JRDtJVEVNX1ZBTFVFOz4% 2bOz47dDxpPDIwPjtAPDA4LTA5OzA3LTA4OzA2LTA3OzA1LTA2OzA0LTA1OzAzLTA0OzAyLTAzOzAxLTAyOzAwLTAxOzk5LTAwOzk4LTk5Ozk3LTk4Ozk2LTk3Ozk1LTk2Ozk0LTk1OzkzLTk0OzkyLTkzOzkxLTkyOzkwLTkxOzg5LTkwOz47QDw4OTk7ODkxOzg4NTs4NzU7ODczOzY4Mjs2ODE7NjgwOzY3OTs3MDM7NzAyOzcwMTs3MDA7Njk5OzY5ODs2OTc7Njk2OzY5NTs2OTQ7NjkzOz4% 2bOz47Oz47dDxwPGw8VGV4dDs% 2bO2w8TGlzdCBPZiBFYXJseSBEYXkgTW90aW9uczs% 2bPjs7Pjs% 2bPjt0PDtsPGk8MT47aTwzPjs% 2bO2w8dDx0PDs7bDxpPDA% 2bOz4% 2bOzs% 2bO3Q8dDw7O2w8aTwwPjs% 2bPjs7Pjs% 2bPjt0PDtsPGk8MT47aTwzPjs% 2bO2w8dDw7bDxpPDE% 2bO2k8Mz47aTw1PjtpPDc% 2bOz47bDx0PHA8cDxsPENvbW1hbmRBcmd1bWVudDtDc3NDbGFzcztFbmFibGVkO18hU0I7PjtsPDA7UGFnZUZpcnN0RGlzYWJsZWQ7b zxmPjtpPDI% 2bOz4% 2bOz47Oz47dDxwPHA8bDxDb21tYW5kQXJndW1lbnQ7Q3NzQ2xhc3M7RW5hYmxlZDtfIVNCOz47bDwtMTtQYWdlUHJldkRpc2FibGVkO288Zj47aTwyPjs% 2bPjs% 2bOzs% 2bO3Q8cDxwPGw8Q29tbWFuZEFyZ3VtZW50O0Nzc0NsYXNzO18hU0I7PjtsPDE7UGFnZU5leHRFbmFibGVkO2k8Mj47Pj47Pjs7Pjt0PHA8cDxsPENvbW1hbmRBcmd1bWVudDtDc3NDbGFzcztfIVNCOz47bDw0MjtQYWdlTGFzdEVuYWJsZWQ7aTwyPjs% 2bPjs% 2bOzs% 2bOz4% 2bO3Q8O2w8aTwxPjtpPDM% 2bO2k8NT47aTw3Pjs% 2bO2w8dDxwPHA8bDxUZXh0Oz47bDwyMTA5Oz4% 2bOz47Oz47dDxwPHA8bDxUZXh0Oz47bDxFRE1zIGFuZCBBbWVuZG1lbnRzOz4% 2bOz47Oz47dDxwPHA8bDxUZXh0Oz47bDwxOz4% 2bOz47Oz47dDxwPHA8bDxUZXh0Oz47bDw1MDs% 2bPjs% 2bOzs% 2bOz4% 2bOz4% 2bO3Q8O2w8aTwxPjtpPDM% 2bOz47bDx0PDtsPGk8MT47aTwzPjtpPDU% 2bO2k8Nz47PjtsPHQ8cDxwPGw8Q29tbWFuZEFyZ3VtZW50O0Nzc0NsYXNzO0VuYWJsZWQ7XyFTQjs% 2bO2w8MDtQYWdlRmlyc3REaXNhYmxlZDtvPGY% 2bO2k8Mj47Pj47Pjs7Pjt0PHA8cDxsPENvbW1hbmRBcmd1bWVudDtDc3NDbGFzcztFbmFibGVkO18hU0I7PjtsPC0xO1BhZ2VQcmV2RGlzYWJsZWQ7bzxmPjtpPDI% 2bOz4% 2bOz47Oz47dDxwPHA8bDxDb21tYW5kQXJndW1lbnQ7Q3NzQ2xhc3M7XyFTQjs% 2bO2w8MTtQYWdlTmV4dEVuYWJsZWQ7aTwyPjs% 2 bPjs% 2bOzs% 2bO3Q8cDxwPGw8Q29tbWFuZEFyZ3VtZW50O0Nzc0NsYXNzO18hU0I7PjtsPDQyO1BhZ2VMYXN0RW5hYmxlZDtpPDI% 2bOz4% 2bOz47Oz47Pj47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY% 2bOz4% 2bOz47bDxpPDE% 2bO2k8Mz47aTw1PjtpPDc% 2bOz47bDx0PHA8cDxsPFRleHQ7PjtsPDIxMDk7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPEVETXMgYW5kIEFtZW5kbWVudHM7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDE7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDUwOz4% 2bOz47Oz47Pj47Pj47Pj47Pj47bDxfTWVudUN0cmw6X0dvVG87Pj5NHcFbPBNzNuwxs7sYLdUE2omkjw% 3d% 3d & _MenuCtrl% 3AddlSession = 875 & _MenuCtrl% 3A_GoTo.x = 57 & _MenuCtrl% 3A_GoTo।y = 14 & ddlStatus = 1 & ddlSortedBy = 1
यह आईई द्वारा भेजे गए रॉ अनुरोध है:
पोस्ट /EDMi/EDMList.aspx HTTP/1.1 स्वीकार करें: image/gif, छवि/jpeg, छवि/pjpeg, छवि/pjpeg, आवेदन/x-शॉकवेव-फ़्लैश, आवेदन/XAML + xml, आवेदन/vnd.ms-xpsdocument, आवेदन/x-एमएस-xbap, आवेदन/एक्स -ms-application, एप्लिकेशन/vnd.ms-exc एल, आवेदन/vnd.ms-पावरपॉइंट, अनुप्रयोग/msword, / Referer: http://edmi.parliament.uk/EDMi/EDMList.aspx स्वीकार करें-भाषा: en-gb उपयोगकर्ता-एजेंट: मोज़िला/4.0 (संगत; एमएसआईई 8.0; विंडोज एनटी 5.1; ट्राइडेंट/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 3.0.04506.648; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) सामग्री-प्रकार: एप्लिकेशन/एक्स-www-form-urlencoded स्वीकार्य-एन्कोडिंग: gzip, डिफ्लेट होस्ट: edmi.parliament.uk सामग्री-लंबाई: 2431 कनेक्शन: Keep-Alive Pragma: नो-कैश कुकी: WT_FPC = id = 83.217.99.254-2364242496.30021299: lv = 1249572414567: एसएस = 1249572414567; ASP.NET_SessionId = vwxgo4rlex1j5m55l0bivrqo
__EVENTTARGET = & __EVENTARGUMENT = & __VIEWSTATE = dDwxMDgyNzIxNDQ2O3Q8O2w8aTwzPjs% 2BO2w8dDw7bDxpPDE% 2BO2k8Mz47aTw1PjtpPDExPjs% 2BO2w8dDw7bDxpPDEzPjtpPDE3Pjs% 2BO2w8dDx0PHA8cDxsPERhdGFWYWx1ZUZpZWxkO0RhdGFUZXh0RmllbGQ7PjtsPFNFU1NJT05JRDtJVEVNX1ZBTFVFOz4% 2BOz47dDxpPDIwPjtAPDA4LTA5OzA3LTA4OzA2LTA3OzA1LTA2OzA0LTA1OzAzLTA0OzAyLTAzOzAxLTAyOzAwLTAxOzk5LTAwOzk4LTk5Ozk3LTk4Ozk2LTk3Ozk1LTk2Ozk0LTk1OzkzLTk0OzkyLTkzOzkxLTkyOzkwLTkxOzg5LTkwOz47QDw4OTk7ODkxOzg4NTs4NzU7ODczOzY4Mjs2ODE7NjgwOzY3OTs3MDM7NzAyOzcwMTs3MDA7Njk5OzY5ODs2OTc7Njk2OzY5NTs2OTQ7NjkzOz4% 2BOz47Oz47dDxwPGw8VGV4dDs% 2BO2w8TGlzdCBPZiBFYXJseSBEYXkgTW90aW9uczs% 2BPjs7Pjs% 2BPjt0PDtsPGk8MT47aTwzPjs% 2BO2w8dDx0PDs7bDxpPDA% 2BOz4% 2BOzs% 2BO3Q8dDw7O2w8aTwwPjs% 2BPjs7Pjs% 2BPjt0PDtsPGk8MT47aTwzPjs% 2BO 2w8dDw7bDxpPDE% 2BO2k8Mz47aTw1PjtpPDc% 2BOz47bDx0PHA8cDxsPENvbW1hbmRBcmd1bWVudDtDc3NDbGFzcztFbmFibGVkO18hU0I7PjtsPDA7UGFnZUZpcnN0RGlzYWJsZWQ7bzxmPjtpPDI% 2BOz4% 2BOz47Oz47dDxwPHA8bDxDb21tYW5kQXJndW1lbnQ7Q3NzQ2xhc3M7RW5hYmxlZDtfIVNCOz47bDwtMTtQYWdlUHJldkRpc2FibGVkO288Zj47aTwyPjs% 2BPjs% 2BOzs% 2BO3Q8cDxwPGw8Q29tbWFuZEFyZ3VtZW50O0Nzc0NsYXNzO18hU0I7PjtsPDE7UGFnZU5leHRFbmFibGVkO2k8Mj47Pj47Pjs7Pjt0PHA8cDxsPENvbW1hbmRBcmd1bWVudDtDc3NDbGFzcztfIVNCOz47bDw0MjtQYWdlTGFzdEVuYWJsZWQ7aTwyPjs% 2BPjs% 2BOzs% 2BOz4% 2BO3Q8O2w8aTwxPjtpPDM% 2BO2k8NT47aTw3Pjs% 2BO2w8dDxwPHA8bDxUZXh0Oz47bDwyMTA5Oz4% 2BOz47Oz47dDxwPHA8bDxUZXh0Oz47bDxFRE1zIGFuZCBBbWVuZG1lbnRzOz4% 2BOz47Oz47dDxwPHA8bDxUZXh0Oz47bDwxOz4% 2BOz47Oz47dDxwPHA8bDxUZXh0Oz47bDw1MDs% 2BPjs% 2BOzs% 2BOz4% 2BOz4% 2BO3Q8O2w8aTwxPjtpPDM% 2BOz47bDx0PDtsPGk8MT47aTwzPjtpPDU% 2BO2k8Nz47PjtsPHQ8cDxwPGw8Q29tbWFuZEFyZ3VtZW50O0Nzc0NsYXNzO0VuYWJsZWQ7XyFTQjs% 2BO2w8MDtQYWdlRmlyc3REaXNhYmxlZDtvPGY% 2BO2k8Mj47Pj47Pjs7Pjt0PHA8cDxsPENvbW1hbmRBcmd1bWVudDtDc3NDbGFzcztFbmFibGVkO18hU0I7PjtsPC0xO1B hZ2VQcmV2RGlzYWJsZWQ7bzxmPjtpPDI% 2BOz4% 2BOz47Oz47dDxwPHA8bDxDb21tYW5kQXJndW1lbnQ7Q3NzQ2xhc3M7XyFTQjs% 2BO2w8MTtQYWdlTmV4dEVuYWJsZWQ7aTwyPjs% 2BPjs% 2BOzs% 2BO3Q8cDxwPGw8Q29tbWFuZEFyZ3VtZW50O0Nzc0NsYXNzO18hU0I7PjtsPDQyO1BhZ2VMYXN0RW5hYmxlZDtpPDI% 2BOz4% 2BOz47Oz47Pj47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY% 2BOz4% 2BOz47bDxpPDE% 2BO2k8Mz47aTw1PjtpPDc% 2BOz47bDx0PHA8cDxsPFRleHQ7PjtsPDIxMDk7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPEVETXMgYW5kIEFtZW5kbWVudHM7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDE7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDUwOz4% 2BOz47Oz47Pj47Pj47Pj47Pj47bDxfTWVudUN0cmw6X0dvVG87Pj5NHcFbPBNzNuwxs7sYLdUE2omkjw% 3 डी% 3 डी & _MenuCtrl% 3AddlSession = 885 & ddlStatus = 0 & ddlSortedBy = 1 & _MenuCtrl% 3A_GoTo।एक्स = 37 & _MenuCtrl% 3A_GoTo.y = 12
आईई हैडर एक अतिरिक्त कुकी (WT_FPC = id = 83.217.99.254-2364242496.30021299: lv = 1249572414567: ss = 1249572414567;) है लगता है डायन ट्रैक करने के लिए appers WebTrends कुकी प्लग-इन के माध्यम से कुकीज़ का उपयोग कर आगंतुक। दोनों पोस्ट अनुरोध HTTP स्थिति कोड 302 लौटाएं और जीईटी अनुरोध पर रीडायरेक्ट करें जो स्टेटस 200 लौटाता है।
कोई विचार?
क्या आपने फिडलर को हुक अप करने और अपने प्रोग्रामेटिक रूप से तैयार किए गए एक वास्तविक अनुरोध को अलग करने की कोशिश की है? कहीं अंतर होना चाहिए। – Pike65
मैं फिडलर के साथ इसे समझने की कोशिश कर रहा हूं। मैं अनुरोध के रॉ डेटा के साथ पोस्ट अपडेट करूंगा। –