SQLの窓

2018年05月13日


C# コンソールアプリを AN HTTPD で実行

テストにはまだまだ使える(重宝する) AN HTTP Server の正しい使用方法

単純に、WEB アプリケーション初心者にブラウザとサーバーのやり取りを知ってもらう為に( 今は、開発者ツールがあるので途中の解説がしやすいですし )、C# で作った EXE をそのままブラウザで実行させます。

基本設定

EXE の列の『一般パスでも実行する』にチェックします



次に、一般パスに C# で作成された Debug フォルダを登録します。



後は、loclhost から実行するだけです。

ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace WebApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //string formtype = "GET";
            string formtype = "POST";

            string[] param = {""};

            // ******************************
            // Console.WriteLine を UTF8 で
            // ******************************
            Console.OutputEncoding = Encoding.UTF8;

            // ******************************
            // メソッド
            // ******************************
            string method = Environment.GetEnvironmentVariable("REQUEST_METHOD");
            // ******************************
            // QUERY_STRING
            // ******************************
            string query_string = System.Environment.GetEnvironmentVariable("QUERY_STRING");

            // ******************************
            // HTTP ヘッダ
            // PHP の session_cache_limiter
            // ******************************
            Console.WriteLine("Content-Type: text/html; charset=utf-8");
            Console.WriteLine("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
            Console.WriteLine("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
            Console.WriteLine("Pragma: no-cache");
            Console.WriteLine();

            string message = "<div>こんにちは世界</div>";

            // ******************************
            // HTML
            // ******************************
            string html = @"<!DOCTYPE html>
<html>
<head>
</head>
<body>
#{message}
<form method='#{formtype}'>
<p>氏名 : <input type='text' name='field1' value='#{field1}'></p>
<p>フリガナ : <input type='text' name='field2' value='#{field2}'></p>
<p>送信 : <input type='submit' name='send' value='送信'></p>
</form>
</body>
</html>";
            html = html.Replace("#{formtype}", formtype);

            // ******************************
            // GET
            // ******************************
            if (method == "GET")
            {
                param = query_string.Split('&');
            }

            // ******************************
            // POST
            // ******************************
            if (method == "POST")
            {
                string line = null;
                line = Console.ReadLine();
                param = line.Split('&');
            }

            foreach (string set in param)
            {
                string[] key_value = set.Split('=');
                if (key_value[0] == "field1")
                {
                    // System.Web を参照して using System.Web;
                    key_value[1] = HttpUtility.UrlDecode(key_value[1]);
                    html = html.Replace("#{field1}", key_value[1]);
                }
                if (key_value[0] == "field2")
                {
                    key_value[1] = HttpUtility.UrlDecode(key_value[1]);
                    html = html.Replace("#{field2}", key_value[1]);
                }
            }


            html = html.Replace("#{field1}", "");
            html = html.Replace("#{field2}", "");


            // #{} は Ruby の真似
            html = html.Replace("#{message}", message);

            Console.WriteLine(html);


        }
    }
}





【VS(C#)の最新記事】
posted by lightbox at 2018-05-13 00:34 | VS(C#) | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり