2011-09-18 141 views
0

我想讓我的Visual C#程序從以.aspx結尾的URL下載圖像。這張圖片實際上是一個驗證碼,隨着時間的推移而變化。從aspx URL檢索圖像

到目前爲止,我試圖做的是創建一個PictureBox,並且我已經將ImageLocation設置爲返回圖像的ASPX url。

但是,這隻給我一個紅色的盒裝X,其中應該出現驗證碼圖像。

是否有一些我應該鍵入的代碼?對不起,我缺乏理解,我是這個C#業務的新手!

感謝您的幫助!

+0

有人刪除了任何東西嗎?答覆在這裏,現在不是! :) – ryanswj

回答

2

您可以嘗試手動下載的圖片看到,如果你得到一個有效的圖像

using (WebClient webclient = new WebClient()) 
{ 
    using (var imageStream = webclient.OpenRead("http://example.com/image.png")) 
    { 
     Image img = Image.FromStream(imageStream);     
    } 
} 

如果沒有得到有效的圖像,你可以再嘗試​​和檢查str變量,看看你從網絡服務器而不是圖像中獲取一些錯誤文本數據。

+0

爲什麼不只是將ImageLocation設置爲圖像的url而不是aspx頁面? – slugster

+0

你好!感謝您的及時回覆。當我插入Captcha的URL時,Visual Studio引發異常,並說WebException未處理 - 底層連接已關閉。 – ryanswj

+0

@slugster,以某種方式思考winforms,設置URL應該可以正常工作,但出於診斷目的,您可以嘗試上面的代碼來查看是否可以下載圖像。 –

0

感謝大家幫忙解答了這個問題!

我正在處理一個相當挑剔的服務器,它只允許具有有效用戶代理的客戶訪問它所託管的網站。添加:

webclient.Headers["User-Agent"] = "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.0.30618)2011-09-18 00:09:44"; 

解決了這個問題。

謝謝!