C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: HTTPSでソケット通信する方法


(過去ログ 95 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■56872 / inTopicNo.1)  HTTPSでソケット通信する方法
  
□投稿者/ ※ (1回)-(2011/02/03(Thu) 16:13:47)

分類:[.NET 全般] 

分類:[C#] 

初めてご質問させて頂きます。
以下のソースでソケット通信を使用して、
Webサイトのデータ取得を行っているのですが、
@HTTPSでサイトにアクセスする方法
AアクセスしたページにID、パスワードを送信してログインする方法
の二点が分からずに困っています。
解決方法を、どうかご教授頂けないでしょうか。
よろしくお願い致します。

-------------------------------------------------------------
            string resMsg = "";//Webページのリクエスト結果格納変数

            //GETリクエストを送信するサーバー名とパス
            string server = "サイトのURL";
            string path = サイトのURL";

            try
            {
                //リクエストメッセージを作成する
                string reqMsg = "GET " + path + " HTTPS/1.1\r\n" +
                    "Host: " + server + "\r\n" +
                    "Connection: Close\r\n\r\n";
                //文字列をbyte配列に変換
                System.Text.Encoding enc =
                    System.Text.Encoding.GetEncoding("Shift_JIS");
                byte[] reqBytes = enc.GetBytes(reqMsg);

                //ホスト名からIPアドレスを取得
                System.Net.IPAddress hostadd =
                    System.Net.Dns.Resolve(server).AddressList[0];

                //IPEndPointを取得
                System.Net.IPEndPoint ephost =
                    new System.Net.IPEndPoint(hostadd, 80);

                //Socketの作成
                System.Net.Sockets.Socket sock =
                    new System.Net.Sockets.Socket(
                    System.Net.Sockets.AddressFamily.InterNetwork,
                    System.Net.Sockets.SocketType.Stream,
                    System.Net.Sockets.ProtocolType.Tcp);

                //接続
                sock.Connect(ephost);

                //リクエストメッセージを送信
                sock.Send(reqBytes, reqBytes.Length,
                    System.Net.Sockets.SocketFlags.None);

                //受信する
                byte[] resBytes = new byte[1024];
                System.IO.MemoryStream mem = new System.IO.MemoryStream();
                while (true)
                {
                    int resSize =
                        sock.Receive(resBytes, resBytes.Length,
                        System.Net.Sockets.SocketFlags.None);
                    if (resSize == 0)
                        break;
                    mem.Write(resBytes, 0, resSize);
                }
                resMsg = enc.GetString(mem.GetBuffer(), 0, (int)mem.Length);
                mem.Close();

                //閉じる
                sock.Shutdown(System.Net.Sockets.SocketShutdown.Both);
                sock.Close();
            }
            catch (Exception ex) { }

            if (resMsg != "")
            {
                [接続後の処理]
            }
-------------------------------------------------------------

引用返信 編集キー/
■56884 / inTopicNo.2)  Re[1]: HTTPSでソケット通信する方法
□投稿者/ Hongliang (755回)-(2011/02/03(Thu) 18:04:22)
WebRequest を使うのは駄目ですか? https に対応していますが。
TcpClient であれば、NetworkStream から SslStream を使用できます。

> アクセスしたページにID、パスワードを送信してログインする方法
これはそのサイト次第としか言いようがありません。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -