[程式]想要寫一個下載網路圖片的程式

看板C_Sharp (C#)作者 (Huevo)時間10年前 (2015/02/15 23:57), 10年前編輯推噓0(1111)
留言13則, 4人參與, 最新討論串1/1
  我打算用 C#.net 開發一個能夠從網路下載圖片的程式   從網路下載圖片的方法一般都是用 WebClient 之類的原件,直接訪問網址然後把讀 取到的串流下載,便可以得到該圖片。   但是這卻有一個嚴重的問題,某些網路上的圖片是有加密的(像是伊莉),使用者沒 有登入帳號,並且閱讀過該篇文章,就沒辦法查看該文章底下的任何圖片,當然也沒辦法 下載。(禁止訪問403)   要訪問有個很簡單的解決方法,就是登入帳號在訪問圖片,所以我用webbrowser原件 來讓使用者登入,但是webbrowser卻不具備下載串流的功能。   雖然我有在google找到一個可以讓webbrowser下載圖片的方法,把圖片copy到剪貼簿 然後直接儲存,但是連續下載就一定會使程式當掉 (不是程式碼問題,明顯是web原件的bug)   注:雖然有些訪問網路的原件具備下載串流的功能,且也能夠登入論壇,但是我不可 能要求使用者要使用程式前先在程式上頭輸入帳號密碼,頂多要求使用者在webbrowser上 頭瀏覽論壇然後登入。 目前我認為有可能的方向有下面幾種,但是都失敗(也許是我方法不對) 讓 webbrowser 的 cookie 傳到其他有辦法下載串流的物件上 讓 webbrowser 使用 ShowSaveAsDialog(右鍵儲存圖片)時,不顯示詢問視窗 覆寫原件讓 webbrowser 具備下載串流的功能。   google找了幾個月了,都一直沒辦法解決,問了很多大學的老師也都沒得到什麼有用 的相關資訊。就算不是C#也沒關係,還懇求幫忙提供任何可能解決問題的方法或方向   這算是我大學的專題,其他功能幾乎都完成了,唯獨某些論壇加密過的圖片無法正常 下載,不知道有沒有甚麼方法可以解決? -- ┌────────┐    ┌─────┐ │啊蛋捕捉法:  │    │○   ○│ │ 餵食蘋果麵包 │    │ ──┴ │ └───┐┌───┘    └─┐ ┌─┘     ││      ┌┐┌─┘ └┐     ││      └┘└─┐ ││ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.61.74 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1424015839.A.DDE.html

02/16 13:23, , 1F
我記得WebClient可以寫認證.不過你要先去看他認證的流程
02/16 13:23, 1F

02/16 16:06, , 2F
請用HttpWebRequest,剩下請自己去挖。
02/16 16:06, 2F

02/16 16:38, , 3F
HttpWebRequest
02/16 16:38, 3F
不可以使用HttpWebRequest來登入帳密然後下載,因為做出來的程式不能直接要求使用者 提供帳密,除非有辦法讓webbrowser跟HttpWebRequest同步 ※ 編輯: huevo235 (61.70.61.74), 02/16/2015 17:44:32 ※ 編輯: huevo235 (61.70.61.74), 02/16/2015 17:45:03

02/17 03:00, , 4F
.NET 沒研究, 但其他平台確實可以用轉移 cookie 的方式
02/17 03:00, 4F

02/17 03:01, , 5F

02/17 09:08, , 6F
不可以用HttpWebRequest登入,但可以用WebBrowser?
02/17 09:08, 6F

02/17 09:09, , 7F
是不可以用HttpWebRequest登入,還是你不會用?
02/17 09:09, 7F

02/17 09:15, , 8F
不能用HWR登,但可讓user用WB登,是我的邏輯有問題嗎
02/17 09:15, 8F

02/17 09:20, , 9F
WB的cookie的確是可以複製,不用像上面那樣複雜
02/17 09:20, 9F

02/17 09:22, , 10F
但上面的網址該提供的關鍵都有提供到
02/17 09:22, 10F

02/17 12:12, , 11F
程式不好就把程式學好 別說都是別的東西的問題
02/17 12:12, 11F

02/17 12:12, , 12F
從你的說法可能連HttpWebRequest怎麼用都不太清楚
02/17 12:12, 12F

02/17 12:14, , 13F
上面兩位推文說得很清楚了
02/17 12:14, 13F
文章代碼(AID): #1KuC7VtU (C_Sharp)
文章代碼(AID): #1KuC7VtU (C_Sharp)