Skip to content

Instantly share code, notes, and snippets.

@kazuakix
Last active August 29, 2015 14:02
Show Gist options
  • Save kazuakix/8190fd2c00bf039993a8 to your computer and use it in GitHub Desktop.
Save kazuakix/8190fd2c00bf039993a8 to your computer and use it in GitHub Desktop.
// System.Net.Http.HttpClient でテスト
private async void OnTest1ButtonClicked(object sender, RoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("========== System.Net.Http.HttpClient test start ==========");
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
await GetImage1("http://flashair/DCIM/101NIKON/DSCN0558.JPG", "DSCN0558.JPG");
sw.Stop();
System.Diagnostics.Debug.WriteLine(sw.Elapsed);
System.Diagnostics.Debug.WriteLine("========== System.Net.Http.HttpClient test end ==========");
}
private async Task<bool> GetImage1(string uri, string fileName)
{
var req = new System.Net.Http.HttpClient();
var res = await req.GetAsync(uri);
if (res.IsSuccessStatusCode)
{
var folder = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync("FlashAir", CreationCollisionOption.OpenIfExists);
if (null == folder) return false;
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
using (var src = await res.Content.ReadAsStreamAsync())
using (var dst = await file.OpenStreamForWriteAsync())
{
var read = 0;
var size = 4096;
var buffer = new byte[size];
while ((read = src.Read(buffer, 0, size)) > 0)
{
dst.Write(buffer, 0, read);
}
}
return true;
}
return false;
}
// Windows.Web.Http.HttpClient でテスト
private async void OnTest2ButtonClicked(object sender, RoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("========== Windows.Web.Http.HttpClient test start ==========");
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
await GetImage2("http://flashair/DCIM/101NIKON/DSCN0557.JPG", "DSCN0571.JPG");
sw.Stop();
System.Diagnostics.Debug.WriteLine(sw.Elapsed);
System.Diagnostics.Debug.WriteLine("========== Windows.Web.Http.HttpClient test end ==========");
}
private async Task<bool> GetImage2(string uri, string fileName)
{
var req = new Windows.Web.Http.HttpClient();
var res = await req.GetAsync(new Uri(uri, UriKind.Absolute));
if (res.IsSuccessStatusCode)
{
var folder = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync("FlashAir", CreationCollisionOption.OpenIfExists);
if (null == folder) return false;
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
using (var src = (await res.Content.ReadAsInputStreamAsync()).AsStreamForRead())
using (var dst = await file.OpenStreamForWriteAsync())
{
var read = 0;
var size = 4096;
var buffer = new byte[size];
while ((read = src.Read(buffer, 0, size)) > 0)
{
dst.Write(buffer, 0, read);
}
}
return true;
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment