トップ回答者
エンコードされたURLからダウンロードできない

質問
-
はじめまして。このフォーラムを初めて使用したいと思います。
宜しくお願いします。
今回の質問は、タイトルにも書いていますようにエンコードされたURLがダウンロードできない問題を解決してほしいことです。
エンコードされたというのは、CMS(Wikiなど)の画像アドレスなどを指しています。
(例 : http://img.maplesonar.com/wiki/?plugin=ref&page=%E6%9C%88%E6%A7%98&src=%E6%9C%88%E6%A7%98.png)
私の作ったソフトでのエラーですが、
「http://img.maplesonar.com/wiki/?plugin=ref&page=月様&src=月様.png 詳細 : パスに無効な文字が含まれています。
WebClient 要求で例外が発生しました。」表示されます。
エラーですが、
e.UserState & " 詳細 : " & e.Error.InnerException.Message & vbCrLf & e.Error.Message & " " & e.Cancelled
のようにプログラムしています。
ダウンロードするコードは、
Dim Url as string = <span style="font-family:Verdana,Arial,Helvetica,sans-serif; white-space:normal">http://img.maplesonar.com/wiki/?plugin=ref&page=%E6%9C%88%E6%A7%98&src=%E6%9C%88%E6%A7%98.png
Dim SavePath As string = My.Application.Info.DirectoryPath
wc.DownloadFileAsync(New Uri(Url), Path.Combine(SavePath, Path.GetFileName(Uri)), Uri)
です。
解決策やヒントなどを教えていただけませんか?
どうぞ宜しくお願いします。
回答
-
totojoさん、ご指摘有難うございます。
確認してみましたところ、おっしゃるとおり使えない文字で保存するようになっていました。
厳密には、URLのディレクトリの最後から拡張子までです。(例では、?plugin=ref&page=月様&src=月様.png)
ここを変えてトライしてみたところできました!やはり、ファイルの問題だったんですね。
思いつきませんでした。
今のところ、これを代理として使おうと思っています。
みなさま、有難うございました。次回も宜しくお願いします。
- 回答としてマーク むーびっちベーシック 2011年2月24日 9:15
すべての返信
-
すみません。忘れていました。
Windows Vista SP2
VisualBasic2010 Express です。
あと、ここのコード挿入が下手なようです。なんか、spanなんかが入っているし;
Dim wc As New WebClient Dim Url As String = "http://img.maplesonar.com/wiki/?plugin=ref&page=%E6%9C%88%E6%A7%98&src=%E6%9C%88%E6%A7%98.png" Dim SavePath As String = My.Application.Info.DirectoryPath wc.DownloadFileAsync(New Uri(Url), Path.Combine(SavePath, Path.GetFileName(Url)), Url)
指摘されたところを変えてやってみましたが、ダウンロードできませんでした。
メッセージも「パスに無効な文字が含まれています。」と変わりませんでした。
自分の予想ですが、URLがエンコードされているからではないでしょうか。静的なURLだとダウンロードできるので。
しかし、デコードしてみてもダウンロードはできませんでした。
http://img.maplesonar.com/wiki/?plugin=ref&page=%E6%9C%88%E6%A7%98&src=%E6%9C%88%E6%A7%98.png
↓
http://img.maplesonar.com/wiki/?plugin=ref&page=月様&src=月様.png
なので予想は外れてしまいました。
VB(WebClient)では不可能なのでしょうか。どうかお力をお貸しください。
-
totojoさん、ご指摘有難うございます。
確認してみましたところ、おっしゃるとおり使えない文字で保存するようになっていました。
厳密には、URLのディレクトリの最後から拡張子までです。(例では、?plugin=ref&page=月様&src=月様.png)
ここを変えてトライしてみたところできました!やはり、ファイルの問題だったんですね。
思いつきませんでした。
今のところ、これを代理として使おうと思っています。
みなさま、有難うございました。次回も宜しくお願いします。
- 回答としてマーク むーびっちベーシック 2011年2月24日 9:15