2013-08-23 69 views
0

我想使用PictureBox來顯示用戶的CAPTCHA圖像。我知道如何從URL中設置典型的圖像。但我需要添加需要cookie的CAPTCHA。我完全是這樣說的:https://konto.interia.pl/poczta/nowe-kontoPictureBox和HttpWebRequest

我不知道如何從這個服務器持有cookie,我可以稍後使用它來顯示驗證碼,然後發送特殊響應來創建帳戶。你有什麼想法,我該怎麼做?

+0

使用'CookieContainer'。 – SLaks

+0

我知道我應該使用它,但我不知道如何連接CookieContainer與特殊的驗證碼圖像。我的問題是因爲[PictureBox](http://msdn.microsoft.com/en-us/library/f6ak7was.aspx)需要String作爲參數,而不是使用CookieContainer的HttpWebRequest。 – matikycz

回答

0

下載圖片使用HTTPWEBREQUEST並保存餅乾你想要做什麼與他們。然後,簡單地將該圖片加載到圖片框中即可。獲取由用戶回答,如果這就是你想要的並且用CookiesCaptchaID發送答案。這應該做到這一點。

+0

我同意這一點。問題在於其他。此驗證碼沒有靜態ID,並且在網絡瀏覽器中我們沒有存儲cookie時,圖像不會顯示。看看這個鏈接:[captcha鏈接](https://captcha.interia.pl/73D22B5D3294BA783FD7F0D7D5174123.jpeg) – matikycz

+0

因此,轉到主頁保存cookie,然後使用cookie下載圖像最新的問題是什麼? – confusedMind

1

您需要自己下載圖像並將其放入PictureBox;您不能使用其內置的下載器和Cookie。

使用HttpWebRequst將其下載到MemoryStream,然後致電Image.FromStream()

+0

好的,謝謝。但是當我想要在該代碼中得到響應: 'HttpWebRequest requestPic =(HttpWebRequest)WebRequest.Create(url); requestPic.CookieContainer = cookies; WebResponse responsePic = requestPic.GetResponse(); webImage = Image.FromStream(responsePic.GetResponseStream());' 我收到一些例外。 – matikycz

+0

什麼錯誤? – SLaks

+0

異常:引發:「遠程服務器返回錯誤:(403)禁止。」 (System.Net.WebException) System.Net.WebException被拋出:「遠程服務器返回錯誤:(403)禁止。」 – matikycz