16762

[code]

    private async void download()
    {
        string[] lines = textBox2.Text.Split(new string[] { "\n" }, StringSplitOptions.None);
        try
        {
            await DownloadImage(lines, @"C:\Users\Mia\Desktop\test\test\");
        }
        catch(Exception error){
            Console.WriteLine("e" + error.Message);
        }
    }
    
    static async Task DownloadImage(HttpClient httpClient, string uri, string path)
    {
        using (var res = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead))
        using (var fileStream = File.Create(path))
        using (var httpStream = await res.Content.ReadAsStreamAsync())
            await httpStream.CopyToAsync(fileStream);
    }
    
    static async Task DownloadImage(string[] uris, string path)
    {
        using (var httpClient = new HttpClient())
            await Task.WhenAll(uris.Select((uri, i) => DownloadImage(httpClient, uri, string.Format("{0}{1}.jpg", path, i + 1))));
    }
    
[/code]

処理は成功しますが、エラーが表示されます。tryで囲まなければ中止してしまいます。

[code]

    'WindowsFormsApplication1.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication1.vshost.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http.resources\v4.0_4.0.0.0_ja_b03f5f7f11d50a3a\System.Net.Http.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
    例外がスローされました: 'System.InvalidOperationException' (System.Net.Http.dll の中)
    例外がスローされました: 'System.InvalidOperationException' (mscorlib.dll の中)
    例外がスローされました: 'System.InvalidOperationException' (mscorlib.dll の中)
    
[/code]

catche(Exception error)

[code]

    An invalid request URI was provided. The request URI must either be an absolute URI or BaseAddress must be set.
    
[/code]


CC BY-SA 3.0
2015-09-18T16:06:52.233
16757
2015-09-18T21:26:59.203
7973
question
c#
C# 画像URLダウンロードでエラー


エラーメッセージにはurlが不正とあります。C#にも画像にも無関係な問題ではありませんか？


CC BY-SA 3.0
2015-09-18T21:19:13.873
16761
2015-09-18T21:19:13.873
4236
16757
answer


> textBox2.Text.Split(new string[] { "\n" }, StringSplitOptions.None);

この`"\n"`は`Environment.NewLine`(=`"\r\n"`)が正しいのでは。


CC BY-SA 3.0
2015-09-18T21:26:59.203
16762
2015-09-18T21:26:59.203
5750
16757
answer