2016-06-30 5 views
0

私はファイルにPNGイメージをダウンロードしようとしていますが、私は私の会社のネットワークプロキシを通してそれをやっています。私はこのbit of codeがPNG画像をダウンロードすることが判明しました。ここでは、コードです:C#を使用してプロキシ経由でURLから画像をダウンロードする方法は?

using (WebClient webClient = new WebClient()) 
{ 
    byte [] data = webClient.DownloadData("https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-xpf1/v/t34.0-12/10555140_10201501435212873_1318258071_n.jpg?oh=97ebc03895b7acee9aebbde7d6b002bf&oe=53C9ABB0&__gda__=1405685729_110e04e71d9"); 

    using (MemoryStream mem = new MemoryStream(data)) 
    { 
     using (var yourImage = Image.FromStream(mem)) 
     { 
      // If you want it as Png 
      yourImage.Save("path_to_your_file.png", ImageFormat.Png) ; 
     } 
    } 

} 

私はプロキシを通過した取得するコードのこのビットを使用していますが、私は、画像をダウンロードするには、上記のコードを組み込むするかどうかはわかりません。

HttpClientHandler clientHandler = new HttpClientHandler(); 
clientHandler.Proxy = new WebProxy(PROXY_URL, true); 
clientHandler.Proxy.Credentials = new NetworkCredential(PROXY_UID, PROXY_PWD, PROXY_DMN); 
var client = new HttpClient(clientHandler); 
var result = client.GetStreamAsync(url).Result; 

私は近くにいると思う。私はこの仕事をするために何をする必要がありますか?

答えて

1

試してみてください。

HttpClientHandler clientHandler = new HttpClientHandler(); 
clientHandler.Proxy = new WebProxy(PROXY_URL, true); 
clientHandler.Proxy.Credentials = new NetworkCredential(PROXY_UID, PROXY_PWD, PROXY_DMN); 
var client = new HttpClient(clientHandler); 
var stream = client.GetStreamAsync(url).Result; 
using (var yourImage = Image.FromStream(stream)) 
{ 
    // If you want it as Png 
    yourImage.Save("path_to_your_file.png", ImageFormat.Png) ; 
} 
1

あなたのusingステートメントでのWebClientオブジェクトはプロキシプロパティを持っています。これらの行は、usingステートメントの中に直接入れるだけでよい:

webClient.Proxy = new WebProxy(PROXY_URL, true); 
webClient.Proxy.Credentials = new NetworkCredential(PROXY_UID, PROXY_PWD, PROXY_DMN); 

このコードは試していないことに注意してください。ちょうど観察をする。

0

.NET Frameworkは、ピクチャボックスコントロールのURLからイメージをロードすることができます

だから、単純にピクチャボックスにイメージをロード

とLAOD完了イベントでの画像の保存

pictureBox1.ImageLocation = "PROXY_URL;

void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e) 
    { 
    pictureBox1.Image.Save(destination); 
} 
関連する問題