Anda tidak ingin bekerja seperti itu. Anda perlu menyimulasikan apa yang akan dilakukan situs setelah formulir tersebut dikirimkan dengan permintaan Posting ke server, dengan meneruskan nilainya. Anda dapat mengevaluasi apa yang dilakukan situs dengan menggunakan Fiddler2 dan melakukan pengiriman formulir secara normal, lalu simpulkan seperti di bawah ini:
HttpWebRequest request;
HttpWebResponse response;
var responseData = "";
var strUrl = "https://auctions.godaddy.com/trpSearchResults.aspx";
var postData = string.Format("action=review_selected_add&items={0}_B_{1}_1|&rnd={2}&JlPYXTX=347bde7", auctionRef, bid,
randomDouble(0, 1).ToString("0.00000000000000000"));
request = (HttpWebRequest)WebRequest.Create(strUrl);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
request.Accept = "text/html, application/xhtml+xml, */*";
request.Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/x-silverlight, application/x-silverlight-2-b2, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11";
request.Headers.Add("Accept-Encoding", "deflate");
request.Referer = "auctions.godaddy.com";
request.Headers["my-header"] = "the-value";
request.KeepAlive = true;
request.CookieContainer = cookies;
request.Timeout = Timeout.Infinite;
var stOut = new StreamWriter(request.GetRequestStream());
stOut.Write(postData);
stOut.Flush();
stOut.Close();
stOut = null;
response = (HttpWebResponse)request.GetResponse();
response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
var encoding = new System.Text.UTF8Encoding();
var responseReader = new StreamReader(response.GetResponseStream(), encoding, true);
encoding = new System.Text.UTF8Encoding();
responseReader = new StreamReader(response.GetResponseStream(), encoding, true);
responseData = responseReader.ReadToEnd();
response.Close();
responseReader.Close();
Buat saja kelas menggunakan di atas untuk memposting data dan kembalikan html.
person
Aaron Gibson
schedule
25.01.2013