Получение каптчи с помощью HttpWebRequest - вопрос №313005
пытаюсь выполнить регистрацию на сайте http://pepsilight.ru с помощью HttpWebRequest.
вот код:
public class clientOptions<br /> {<br /> public string patternImage = @"mycaptcha/image/[\d\w]{32}";<br /> public string firstStep = "
pepsilight.ru";<br /> public string secondStep = "
pepsilight.ru/user/register";<br />
public string adresIMG = "
pepsilight.ru/";<br /> public string captchaAdres = "
pepsilight.ru/";<br /> //public string MyProxy = "127.0.0.1";<br /> //public int myPort = 8888;<br /> public string MyUserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";<br /> public string MyAccept = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*";<br /> public string MyHeaders = "Accept-Language";<br /> public string MyHeaders1 = "ru-RU";<br /> }<br /> <br /> <br /> public class registredWithCaptcha<br /> {<br /> clientOptions clOptions = new clientOptions();<br /> public CookieCollection cookiesPepsi = new CookieCollection();<br /> string myStr = "";<br /> <br /> public void FirstStep()<br /> {<br /> HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(clOptions.firstStep);<br /> //myHttpWebRequest.Proxy = new WebProxy(clOptions.MyProxy, clOptions.myPort);<br /> myHttpWebRequest.UserAgent = clOptions.MyUserAgent;<br /> myHttpWebRequest.Accept = clOptions.MyAccept;<br /> myHttpWebRequest.Headers.Add(clOptions.MyHeaders, clOptions.MyHeaders1);<br /><br /> HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();<br /> if (myHttpWebResponse != null)<br /> {<br /> cookiesPepsi.Add(myHttpWebResponse.Cookies);<br /> }<br /> }<br /><br /> public string SecondStep()<br /> {<br /> HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(clOptions.secondStep);<br /> //myHttpWebRequest.Proxy = new WebProxy(clOptions.MyProxy, clOptions.myPort);<br /> myHttpWebRequest.UserAgent = clOptions.MyUserAgent;<br /> myHttpWebRequest.Accept = clOptions.MyAccept;<br /> myHttpWebRequest.Headers.Add(clOptions.MyHeaders, clOptions.MyHeaders1);<br /> myHttpWebRequest.CookieContainer = new CookieContainer();<br /> myHttpWebRequest.CookieContainer.Add(cookiesPepsi);<br /> myHttpWebRequest.Referer = "
pepsilight.ru/";<br /><br /> HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();<br /> if (myHttpWebResponse != null)<br /> {<br /> cookiesPepsi.Add(myHttpWebResponse.Cookies);<br /> }<br /><br /> StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));<br /> myStr = myStreamReader.ReadToEnd();<br /> clOptions.captchaAdres += Regex.Match(myStr, clOptions.patternImage).ToString();<br /> return myStr;<br /> }<br /><br /> public string getCaptcha()<br /> {<br /> HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(clOptions.captchaAdres);<br /> //myHttpWebRequest.Proxy = new WebProxy(clOptions.MyProxy, clOptions.myPort);<br /> myHttpWebRequest.UserAgent = clOptions.MyUserAgent;<br /> myHttpWebRequest.Accept = "*/*";<br /> myHttpWebRequest.Headers.Add(clOptions.MyHeaders, clOptions.MyHeaders1);<br /> myHttpWebRequest.Referer = "
pepsilight.ru/user/register";<br /> <br /> myHttpWebRequest.CookieContainer = new CookieContainer();<br /> myHttpWebRequest.CookieContainer.Add(cookiesPepsi); <br /><br /> HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();<br /> if (myHttpWebResponse != null)<br /> {<br /> cookiesPepsi.Add(myHttpWebResponse.Cookies);<br /> } <br /> <br /> return clOptions.adresIMG + Regex.Match(myStr, clOptions.patternImage).ToString();<br /> }<br /> }в результате адрес каптчи получаю, но вот само изображение не грузится, в чем может быть проблема?
июль 26, 2012 г.