コメント |
[[両方とも コンソールアプリケーションは WebClient]]
@DIV
using System;
//using System.Collections.Generic;
//using System.Linq;
using System.Text;
using System.Net;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var wc = new WebClient();
wc.Encoding = System.Text.Encoding.GetEncoding("UTF-8");
string web_text = wc.DownloadString("http://textt.net/sworc/20121226075830.txt");
wc.Dispose();
Console.WriteLine(web_text);
Console.ReadLine();
}
}
}
@END
[[通常 Windows アプリケーション で HttpClient]]
@DIV
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private async void button1_Click(object sender, EventArgs e)
{
var hc = new HttpClient();
hc.MaxResponseContentBufferSize = 256000;
try
{
HttpResponseMessage response = await hc.GetAsync("http://winofsql.jp");
response.EnsureSuccessStatusCode();
// var responseBodyAsText = await response.Content.ReadAsStringAsync();
var data = await response.Content.ReadAsByteArrayAsync();
var web_text = Encoding.GetEncoding("SHIFT_JIS").GetString(data);
Debug.WriteLine(web_text);
}
catch (HttpRequestException hre)
{
Debug.WriteLine(hre.ToString());
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
hc.Dispose();
}
}
}
@END
@SHOW
1) デフォルトでは、UTF-8 で動作するようです。
2) WebClient のように Encoding 指定(プロパティ)が無く、自分で変換する必要があるようです
@C:red(
Async という文字列を含んだメソッドは、非同期専用メソッドで、
そのメソッドを実行するメソッドの宣言に async キーワードが必要です。
また、Async という文字列を含んだメソッドを呼び出すのら await キーワードが必要です
これらの記述方法により、イベント記述が無くなって、書いたままの順序で実行されます。
)
@END |