Webclient.DownloadFile()
メソッドを使用してC#コンソールアプリケーションからファイルをダウンロードしようとしています。 A-ZA-Z0-9という名前のファイルを簡単にダウンロードできます。しかし、ファイル名に '%'がある場合は、400のBad Requestが返されます。webclientが '%'でファイル名をダウンロードできません:400 Bad Request Exception
string filename = "a%bc.txt";
string remotePath = "https://exampleURL.com/Folder/"+filename;
striing localPath = @"F:\"+filename;
using (WebClient client = new WebClient())
{
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
client.DownloadFile(new Uri(remotePath), localPath);
Console.WriteLine("Done");
}
IはHTTPUtility.URLEncode()
を試みたが、それは404エラーを得た:以下
私は使用のコードです。私はいくつかのブログを紹介しましたが、私の方法で働いた人はいませんでした。助けてください!
UPDATE:
は、次の例外の詳細です:%は有効なURL文字であるため、
Exception information:
Exception type: HttpException
Exception message: A potentially dangerous Request.Path value was detected from the client (%).
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
(2番目のコードブロックなど)HttpUtility' 'を使用してコードを含めてください。 **正常に**ファイルをダウンロードするためにあなたのウェブブラウザからどのURLを使用したかを確認してください。 _Preferably例ではない - **実際の** url._ – mjwills
そのコンソールアプリケーション、私はWebブラウザを使用しないでください。また、申し訳ありませんが、実際のURLを公式に投稿することはできません – Parth