Web�y�[�W�̎擾���ɁAMIT���C�Z���X�����̃h�l�[�V�����E�F�A�uReadJEnc�v���g�p���āA�����G���R�[�f�B���O�𐄒肷����@���������B
�@
�ΏہF.NET 2.0�ȍ~�iWeb�y�[�W���擾���镔����.NET 4.5�ȍ~�j
�@�C�ӂ�Web�y�[�W�̓��e���擾����ɂ́A����ł͕����R�[�h�̐��肪�K�v�ɂȂ�B�u.NET TIPS�FHttpClient�N���X�ŃV�t�gJIS��Web�y�[�W���擾����ɂ́H�mC#�AVB�n�v�ł́AW3C�̐��������ɏ����Ď������Ă݂��B����ł������������Ă��܂�Web�T�C�g�ł́A�ǂ�������悢���낤���H ����ɂ́AWeb�y�[�W�̓��e��P��byte�̕��тƂ��Ď擾���A����byte��̃p�^�[�����當���G���R�[�f�B���O�𐄒肷�邱�ƂɂȂ邾�낤�B�{�e�ł́A�����G���R�[�f�B���O�𐄒肵�ĕ�����ɕϊ����Ă����I�[�v���\�[�X�̃��C�u�����uReadJEnc�v�̎g�������������B
�@�o�C�g��̃p�^�[�����當���G���R�[�f�B���O���m���ɔ���ł���A���S���Y���͑��݂��Ȃ��B�����ŁA�����R�[�h�́u�������ʁv�Ƃ悭�����邪�A�{�e�ł́u����v�Ƃ������t���g�����Ƃɂ���B���̂悤�ȕ����G���R�[�f�B���O�𐄒肷�郉�C�u�����͂��������J����Ă���B�Ⴆ�Ύ��̂悤�Ȃ��̂�����B
�@������Internet Explorer��Firefox�Ŏg���Ă�����̂Ő��萸�x�͍������ł͂��邪�AC#�^VB���痘�p����ɂ̓n�[�h���������B��y��.NET Framework���璼�ڎQ�Ƃł���`���̃��C�u�����͂Ȃ����̂��B���̈�ɁAhnx8���ɂ����2014�N�Ɍ��J���ꂽ�uReadJEnc�v������BReadJEnc��MIT���C�Z���X�������h�l�[�V�����E�F�A�ƂȂ��Ă���B�{�e�ł́AWeb�y�[�W��byte�z��Ƃ��Ď擾���A�����ReadJEnc�ŕ�����ɕϊ�������@���Љ��B
�@�_�E�����[�h�y�[�W������肵��zip�t�@�C���̒��g��K���ȃt�H���_�[�ɓW�J���Ă����B���̒��́uHnx8.ReadJEnc.dll�v�t�@�C�����v���W�F�N�g�̎Q�Ɛݒ�ɒlj�����A�����͊������i���̉摜�j�B
�@�Ȃ��A�uHnx8.ReadJEnc.dll�v�t�@�C���Ɠ����t�H���_�[�ɁuHnx8.ReadJEnc.xml�v�t�@�C��������izip�t�@�C�������̂܂ܓW�J�����瑶�݂���͂����j�AVisual Studio��IntelliSense���@�\����i���̉摜�j�B
�@HttpClient�N���X�iSystem.Net.Http���O��ԁj�𗘗p����Ȃ�AGetByteArrayAsync���\�b�h���g���悢�B
�@�u.NET TIPS�FHttpClient�N���X��Web�y�[�W���擾����ɂ́H�mC#�AVB�n�v�ō쐬����GetWebPageAsync���\�b�h���x�[�X�ɂ��ď���������ƁA���̃R�[�h�̂悤�ɂȂ�B
static async Task<byte[]> GetWebPageAsync(Uri uri)
// ���\�b�h���Ԃ��^��Task<string>����Task<byte[]>�ɕύX����
{
// HttpClient�I�u�W�F�N�g������Ďg�p����
using (var client = new HttpClient())
{
�c�c�ȗ��c�c
try
{
//// Web�y�[�W�̓��e����Ƃ��Ď擾����
//return await client.GetStringAsync(uri);
// Web�y�[�W�̓��e��byte�z��Ƃ��Ď擾����
return await client.GetByteArrayAsync(uri);
}
catch (HttpRequestException e)
{
�c�c�ȗ��c�c
}
return null;
}
}
Async Function GetWebPageAsync(uri As Uri) As Task(Of Byte())
' ���\�b�h���Ԃ��^��Task Task(Of String)����Task(Of Byte())�ɕύX����
' HttpClient�I�u�W�F�N�g������Ďg�p����
Using client = New HttpClient()
�c�c�ȗ��c�c
Try
'' Web�y�[�W�̓��e����Ƃ��Ď擾����
'Return Await client. GetStringAsync (uri)
' Web�y�[�W�̓��e��byte�z��Ƃ��Ď擾����
Return Await client.GetByteArrayAsync(uri)
Catch e As HttpRequestException
�c�c�ȗ��c�c
End Try
Return Nothing
End Using
End Function
�@��̃��\�b�h�Ŏ擾�ł���byte�z����AReadJEnc�N���X�̃C���X�^���X��GetEncoding���\�b�h�ɓn���悢�BReadJEnc�N���X�������G���R�[�f�B���O�𐄒肵�ĕ�����ɕϊ��������ʂ�������B�܂��A���̃��\�b�h�̕Ԓl�́A����ł��������G���R�[�f�B���O�ƂȂ��Ă���i���̃R�[�h�j�B
�c�c�ȗ��c�c
static void Main(string[] args)
{
�c�c�ȗ��c�c
// �擾������Web�y�[�W��URI
Uri webUri = new Uri(�c�c�ȗ��c�c);
// GetWebPageAsync���\�b�h���Ăяo��
//Task<string> webTask = GetWebPageAsync(webUri);
Task<byte[]> webTask = GetWebPageAsync(webUri);
webTask.Wait(); // Main���\�b�h�ł�await�ł��Ȃ��̂ŁA��������������܂őҋ@����
//string result = webTask.Result; // ���ʂ��擾
byte[] byteData = webTask.Result; // ���ʂ��擾
string result = null; // �f�R�[�h���ʂ��i�[�����string�ϐ�
if (byteData != null)
{
// byte�z��Ƃ��Ď擾�ł����̂ŁAReadJEnc��JP�C���X�^���X���g���ăf�R�[�h����
Hnx8.ReadJEnc.CharCode charCode
= Hnx8.ReadJEnc.ReadJEnc.JP.GetEncoding(byteData, byteData.Length, out result);
Console.WriteLine("�����G���R�[�f�B���O���茋��: {0}", charCode.ToString());
}
�c�c�ȗ��i�o�ߎ��ԂƓ���ꂽ�������\���j�c�c
}
Sub Main()
�c�c�ȗ��c�c
' �擾������Web�y�[�W��URI
Dim webUri As Uri = New Uri(�c�c�ȗ��c�c)
' GetWebPageAsync���\�b�h���Ăяo��
'Dim webTask As Task(Of String) = GetWebPageAsync(webUri)
Dim webTask As Task(Of Byte()) = GetWebPageAsync(webUri)
webTask.Wait() ' Main���\�b�h�ł�await�ł��Ȃ��̂ŁA��������������܂őҋ@����
'Dim result As String = webTask.Result ' ���ʂ��擾
Dim byteData As Byte() = webTask.Result ' ���ʂ��擾
Dim result As String = Nothing ' �f�R�[�h���ʂ��i�[�����string�ϐ�
If (byteData IsNot Nothing) Then
' byte�z��Ƃ��Ď擾�ł����̂ŁAReadJEnc��JP�C���X�^���X���g���ăf�R�[�h����
Dim charCode As Hnx8.ReadJEnc.CharCode _
= Hnx8.ReadJEnc.ReadJEnc.JP.GetEncoding(byteData, byteData.Length, result)
Console.WriteLine("�����G���R�[�f�B���O���茋��: {0}", charCode.ToString())
End If
�c�c�ȗ��i�o�ߎ��ԂƓ���ꂽ�������\���j�c�c
End Sub
�@���̃T���v���R�[�h�ŁAWeb�y�[�W��URL�i���[�J���ϐ��uwebUri�v�����Ƃ��ɗ^���镶����A�R�[�h���ł͏ȗ����Ă���j��ς��Ď��������ʂ��ȉ��Ɏ����B
�@���{��̃T�C�g�A���邢�͑�����ł����Ă�UTF-8�̃T�C�g�ł́A������ƃf�R�[�h�ł����i���̉摜�j�B
�@ReadJEnc�N���X�́uJP�v�C���X�^���X�ł́AUTF-8�ł͂Ȃ�������̃T�C�g�͐���������ł��Ȃ��i���̉摜�j�B����́A���ꂲ�ƂɃC���X�^���X��������Ă��邱�Ƃ���z���ł��錋�ʂł���i�摜�ɂ��ڂ������A�uCN�v�C���X�^���X���g���Β�����ȑ̎��̃G���R�[�f�B���O�𐄒�ł���j�B
�@��q�������ӓ_�����邱�Ƃ��킫�܂��Ďg���AReadJEnc�N���X�͂ƂĂ��֗��ȃ��C�u�����ł���B���̑��AReadJEnc�N���X�̏ڍׂ���҂̃u���O�L���������������������B�܂��A�_�E�����[�h�ł���p�b�P�[�W�ɂ�C#�̃\�[�X�R�[�h����������Ă���B
���p�\�o�[�W�����F.NET Framework 2.0�ȍ~
�J�e�S���F�N���X���C�u�����@�����ΏہF������@�����ΏہF�l�b�g���[�N
�g�p���C�u�����FHttpClient�N���X�iSystem.Net.Http���O��ԁj
�g�p���C�u�����FReadJEnc�N���X�iHnx8.ReadJEnc���O��ԁj
�֘ATIPS�FHttpClient�N���X��Web�y�[�W���擾����ɂ́H�mC#�AVB�n
�֘ATIPS�FHttpClient�N���X�ŃV�t�gJIS��Web�y�[�W���擾����ɂ́H�mC#�AVB�n
�֘ATIPS�FWebClient�N���X��Web�y�[�W���擾����ɂ́H
�u.NET TIPS�v
Copyright© Digital Advantage Corp. All Rights Reserved.