|
分類:[VB.NET/VB2005 以降]
言語:VB 2008
WebBrowserに表示されているWebページ上にPDFのリンク(このPDFはWeb側で動的に作成)があり、
このPDFを自動的にダウンロード出来るようなソフトを作成しているのですが、
ある環境からダウンロードしようとすると、ダウンロードの所で、
「System.Net.WebException: リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です」
というエラーが出てしまいます。
他の環境ではこのようなエラーは見られません。
コードは以下の通りで、ダウンロード時にクッキーをセットできるよう、WebClientを継承したクラスを用いています。
Dim wb_cookies as String = (WebBrowserから取得した該当サイトのクッキー)
Dim url as Uri = (WebBrowser上に表示のページのUri)
Dim ccn As New CookieContainer
ccn.SetCookies(url, Replace(wb_cookies, ";", ","))
Using wc As New WebClientEx '定義は以下参照
wc.CookieContainer = ccn
wc.Proxy = System.Net.WebRequest.DefaultWebProxy
wc.DownloadFile("pdfのURL", fileName) '←ここでエラー
End Using
'WebClientExクラス
Private Class WebClientEx
Inherits WebClient
Private _ccn As CookieContainer
Public Property CookieContainer() As CookieContainer
Get
Return _ccn
End Get
Set(ByVal value As CookieContainer)
_ccn = value
End Set
End Property
Protected Overrides Function GetWebRequest(ByVal uri As Uri) As WebRequest
Dim wrq As WebRequest = MyBase.GetWebRequest(uri)
If TypeOf wrq Is HttpWebRequest Then
Dim hrq As HttpWebRequest = DirectCast(wrq, HttpWebRequest)
hrq.CookieContainer = _ccn
End If
Return wrq
End Function
End Class
なお、このWebサイト上のPDFをこちらのソフトでダウンロード出来るようにすることについては、
こちらのサイトのオーナーより承認を頂いています。
どうぞ宜しくお願いします。
|