动态获取页面参数内容

本文章主要内容为动态的获取页面内容,在地址栏后面输入参数进行相加,最终将结果返回给用户,如:

http://i.cnblogs.com/add?i=1&j=2,?前面的为处理程序路径,?后面的为请求的参数,以&分割多个参数,注意这是HTTP协议格式,一种规范,一种标准

static void Main(string[] args)
{
    Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8888));
    serverSocket.Listen(10);
    while (true)
    {
        Console.WriteLine("等着请求");
        Socket socket = serverSocket.Accept();
        Console.WriteLine("来了请求了");
        string firstline;
        using (NetworkStream stream = new NetworkStream(socket))
        using (StreamReader reader = new StreamReader(stream))
        {
            firstline = reader.ReadLine();//读取GET /1.html HTTP/1.1
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                Console.WriteLine(line);
                if (line.Length <= 0)
                {
                    break;
                }
            }
        }

        string[] strs = firstline.Split(‘ ‘);
        string url = strs[1];//1.html
        string[] strs2 = url.Split(‘?‘);//add?i=1&j=2
        string fileAction = strs[0];//add
        string qs = strs2[1];
        Dictionary<string, string> dic = ParseQureyString(qs);
        int i = Convert.ToInt32(dic["i"]);
        int j = Convert.ToInt32(dic["j"]);

        using (NetworkStream stream = new NetworkStream(socket))
        using (StreamWriter write = new StreamWriter(stream))
        {
            write.WriteLine("HTTP/1.1 200 OK");
            write.WriteLine();
            write.WriteLine(i + j);
        }
        socket.Disconnect(false);
    }
}
/// <summary>
/// 把i=1&j=2转换为一个Dictionary
/// </summary>
/// <param name="qs"></param>
/// <returns></returns>
private static Dictionary<string, string> ParseQureyString(string qs)
{
    Dictionary<string, string> dic = new Dictionary<string, string>();
    string[] strs = qs.Split(‘&‘);
    foreach (string str in strs)
    {
        string[] kv = str.Split(‘=‘);
        string name = kv[0];
        string value = kv[1];
        dic.Add(name, value);
    }
    return dic;
}

判断用户名和密码,把结果返回给客户端

/login?username=admin&password=123

时间: 2024-07-30 15:55:38

动态获取页面参数内容的相关文章

smarty模板中获取页面参数

{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP中的常量.从配置文件中读取变量等.该保留变量中的部分访问介绍如下. 1.在模板中访问页面请求变量 我们可以在PHP脚本中,通过超级全局数组$_GET.$_POST.$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通过$_COOKIE或$_SESSION在多个脚本之间跟踪变量,或是通

WordPress获取页面文章内容的代码

下面是具体相关的页面内容调用代码: wordpess调用某页面内容的代码如下: <?php $article_id = 1; //页面的ID echo get_post($article_id)->post_content; ?> post_author:(整数)文章作者的编号 post_data:(字符)文章发表的日期和时间(YYYY-MM-DD HH-MM-SS) post_data_gmt:(字符)文章发表的格林尼治标准时间(GMT) (YYYY-MM-DD HH-MM-SS) p

php动态获取函数参数

PHP 在用户自定义函数中支持可变数量的参数列表.其实很简单,只需使用 func_num_args() , func_get_arg() ,和 func_get_args()  函数即可. 可变参数并不需要特别的语法,参数列表仍按函数定义的方式传递给函数,并按通常的方式使用这些参数. 1.func_num_args — 返回传入函数的参数总个数 int func_num_args ( void ) 示例 <?php function demo () { $numargs = func_num_a

案例15:avro 负载均衡的方式动态获取文件中内容

需求: 将131上产生的日志文件负载均衡到 132 和133机器上 如图: 配置132 机器和133机器 (相同)) arov.conf a1.sources = r1 a1.sinks = k1 a1.channels = c1     # Describe/configure the source a1.sources.r1.type = avro a1.sources.r1.bind =0.0.0.0 a1.sources.r1.port =41414       # Describe t

字符串拼接,字符串里面有点击事件,点击事件里面有动态获取的参数

html='<select class="placeWidth fl" id="' + data.returnData[i].children[j].pfieldname + '_ss" onchange="refreshQList_sy(\' '+data.returnData[i].children[j].pfieldname+' \',\'110000000000\');zxs_sqxs(\' '+data.returnData[i].chil

如何在Silverlight应用程序中获取ASP.NET页面参数

asp.net Silverlight应用程序中获取载体aspx页面参数 有时候SL应用中需要使用由aspx页面中传递过来的参数值,此时通常有两种方法获取 1. 使用InitParameters属性,动态设置传递参数 . 2. 在SL工程中使用HtmlPage类来直接获取页面参数. 如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面,并且需要在SilverlightTestPage.aspx页面所宿主的Silverligh

Struts2------Result处理&amp;获取页面请求参数&amp;API

一.Result处理 1.1 说明 平常我们设置跳转页面,是在action标签里面加上 result标签来控制,这种设置的页面跳转,称之为 局部结果页面:但是我们有时候在很多个action里面,针对不同的结果进行跳转时,也有可能跳转同一个页面,那么这个时候就可以配置全局结果页面. 1.2 局部结果配置eg <action name="demo01_*" class="com.gaga.web.action.ActionDemo01" method="

Ember——{{outlet}}的内容是根据路由选择后动态获取

{{outlet}}的内容 是根据 路由选择 后 动态获取 的模板内容 路由:Ember程序的路由,它可以帮助管理应该程序的状态和用户导航所需资源的资源: 当我们的应用程序启动时,路由是负责显示模板,加载数据,以及管理应用程序的状态.

使用Mono Cecil 动态获取运行时数据 (Atribute形式 进行注入) -摘自网络

目录 一:普通写法 二:注入定义 三:Weave函数 四:参数构造 五:业务编写 六:注入调用 一:普通写法 1 2 3 4 public static string GetPoint(int x, int y)  {     var value=x; } 哇 好简单啊.其实动态获取和我们普通这样写代码是一样的,我们把要注入的代码,生成一个接收的变量就可以了. 就像上面value 一样接收,然后传递给我们自己函数就可以了. 二 :注入定义 public class WeaveService :