当前位置: 首页>>代码示例>>C#>>正文


C# HttpListener.GetContext方法代码示例

本文整理汇总了C#中HttpListener.GetContext方法的典型用法代码示例。如果您正苦于以下问题:C# HttpListener.GetContext方法的具体用法?C# HttpListener.GetContext怎么用?C# HttpListener.GetContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HttpListener的用法示例。


在下文中一共展示了HttpListener.GetContext方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: StartListener

	public void StartListener (Object args)
	{
		HttpListener listener = new HttpListener ();
		string prefix = string.Format ("http://*:8880/{0}/", args);
		listener.Prefixes.Add (prefix);
		listener.Start ();

		for (; ; ) {
			HttpListenerContext ctx = listener.GetContext ();
			new Thread (new Worker (ctx).ProcessRequest).Start ();
		}
	}
开发者ID:mono,项目名称:gert,代码行数:12,代码来源:host.cs

示例2: Listen

	private static void Listen ()
	{
		HttpListener listener = new HttpListener ();
		listener.Prefixes.Add ("http://127.0.0.1:8080/a/");
		listener.Start ();

		HttpListenerResponse response = listener.GetContext().Response;
		response.ContentType = "text/xml";

		byte [] buffer = Encoding.UTF8.GetBytes ("<ok/>");
		response.ContentLength64 = buffer.Length;
		Stream output = response.OutputStream;
		output.Write (buffer, 0, buffer.Length);
		output.Close ();
		listener.Stop ();
	}
开发者ID:mono,项目名称:gert,代码行数:16,代码来源:test.cs

示例3: Main

	static int Main ()
	{
		TinyHost h = CreateHost ();

		HttpListener listener = new HttpListener ();
		listener.Prefixes.Add ("http://" + IPAddress.Loopback.ToString () + ":8081/");
		listener.Start ();

		HttpListenerContext ctx = listener.GetContext ();
		StreamWriter sw = new StreamWriter (ctx.Response.OutputStream);
		h.Execute ("FaultService.asmx", sw);
		sw.Flush ();
		ctx.Response.Close ();

		return 0;
	}
开发者ID:mono,项目名称:gert,代码行数:16,代码来源:server.cs

示例4: Main

    static void Main(string[] args)
    {
        var port   = "1982";
        var root   = ".";
        var prefix = String.Format("http://*:{0}/", port);

        Log("listening {0}", prefix);

        var listener = new HttpListener();
        listener.Prefixes.Add(prefix);
        listener.Start();

        while (true) {
          var context  = listener.GetContext();
          var request  = context.Request;
          var response = context.Response;

          Log("{0} {1}", request.HttpMethod, request.RawUrl);

          if (request.RawUrl == "/api") {
        ApiResponse(response, request);
          }
          else {
        var path = root + request.RawUrl;

        try {
          var content = File.ReadAllBytes(path);
          response.ContentType = "text/plain";
          response.AppendHeader("Content-Length", content.Length.ToString());
          response.OutputStream.Write(content, 0, content.Length);
        }
        catch (FileNotFoundException e) {
          ErrorResponse(response, 404, e);
        }
        catch (UnauthorizedAccessException e) {
          ErrorResponse(response, 403, e);
        }
        catch (Exception e) {
          ErrorResponse(response, 500, e);
        }
          }
          Log("  -> {0}", response.StatusCode);
          response.Close();
        }
    }
开发者ID:gfx,项目名称:mono-simple-httpd,代码行数:45,代码来源:SimpleHttpd.cs

示例5: run_server

	static void run_server ()
	{
		HttpListener listener = new HttpListener ();
		listener.Prefixes.Add (url);
		listener.Start ();

		while (server_count < count) {
			HttpListenerContext context = listener.GetContext ();
			HttpListenerResponse response = context.Response;
			string responseString = "my data";
			byte [] buffer = Encoding.UTF8.GetBytes (responseString);
			response.ContentLength64 = buffer.Length;
			Stream output = response.OutputStream;
			output.Write (buffer, 0, buffer.Length);
			output.Close ();
			server_count++;
		}
	}
开发者ID:mono,项目名称:gert,代码行数:18,代码来源:test1.cs

示例6: Main

    //用户可能需要具有管理员身份才能运行此应用程序
    static void Main()
    {
        var listener = new HttpListener();

        listener.Prefixes.Add("http://+:8086/csharpfeeds/");
        listener.Start();

        // 打开指向将为其提供服务的源的浏览器。
        string uri = @"http://localhost:8086/csharpfeeds/";
        System.Diagnostics.Process browser = new System.Diagnostics.Process();
        browser.StartInfo.FileName = "iexplore.exe";
        browser.StartInfo.Arguments = uri;
        browser.Start();

        // 为请求提供服务。
        while (true) {
            var context = listener.GetContext();
            var body = GetReplyBody();
            context.Response.ContentType = "text/xml";
            using (XmlWriter writer = new XmlTextWriter(context.Response.OutputStream, Encoding.UTF8))
                body.WriteTo(writer);

        }
    }
开发者ID:jetlive,项目名称:skiaming,代码行数:25,代码来源:Program.cs

示例7: Main

    static void Main(string []args)
    {
        if(args.Length != 2)
        {
            Console.WriteLine("Error: please specify URI to listen on and Authentication type to use:\nAuthListener.exe ServerURI AuthenticationScheme");
            return;
        }
        string serverUri = args[0];
        AuthenticationSchemes authScheme;
        switch(args[1].ToLower())
        {
            case "none":
                authScheme = AuthenticationSchemes.None;
                break;
            case "anonymous":
                authScheme = AuthenticationSchemes.Anonymous;
                break;
            case "basic":
                authScheme = AuthenticationSchemes.Basic;
                break;
            case "digest":
                authScheme = AuthenticationSchemes.Digest;
                break;
            case "ntlm":
                authScheme = AuthenticationSchemes.Ntlm;
                break;
            case "negotiate":
                authScheme = AuthenticationSchemes.Negotiate;
                break;
            case "integrated":
                authScheme = AuthenticationSchemes.IntegratedWindowsAuthentication;
                break;
            default:
                Console.WriteLine("Error: unrecognized AuthenticationScheme:{0}", args[1]);
                return;
        }
    
        HttpListener listener = new HttpListener();
        listener.Prefixes.Add(serverUri);
        listener.AuthenticationSchemes = authScheme;

        listener.Start();
        Console.WriteLine("Listening...");

		HttpListenerContext context = listener.GetContext();
		Console.WriteLine("Received request...");
		StreamWriter writer = new StreamWriter(context.Response.OutputStream);

		// Verify correct authentication scheme was used.
		if (!VerifyAuthenticationScheme(listener.AuthenticationSchemes, context))
		{
			context.Response.StatusCode = (int)HttpStatusCode.ExpectationFailed;
			writer.Write("Error authentication validation failed");
		}

		context.Response.Close();
	}
开发者ID:China-ls,项目名称:cpprestsdk,代码行数:57,代码来源:Program.cs

示例8: Run

    public void Run()
    {
        HttpListener listener = new HttpListener();
        listener.Prefixes.Add("http://localhost:8080/");
        listener.Start();

        // Wait for a request
        HttpListenerContext context = listener.GetContext();
        HttpListenerRequest request = context.Request;

        // process the request
        string path = request.Url.AbsolutePath;
        string responseString;

        try
        {
            responseString = handler(context);
        }
        catch (Exception e)
        {
            responseString = e.ToString();
        }

        // write the response
        HttpListenerResponse response = context.Response;
        System.IO.Stream output = response.OutputStream;

        if (!String.IsNullOrEmpty(responseString))
        {
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            response.ContentLength64 = buffer.Length;
            output.Write(buffer, 0, buffer.Length);
        }
        output.Close();

        // shut down the listener
        listener.Stop();
    }
开发者ID:ChrisGrishaw,项目名称:duo_api_csharp,代码行数:38,代码来源:ApiCallTest.cs

示例9: ListenThread

    private void ListenThread()
    {
        try
        {
            listener = new HttpListener();

            foreach (string prefix in prefixes)
            {
                listener.Prefixes.Add(prefix);
            }

            listener.Start();

            while (true)
            {
                HttpListenerContext context = listener.GetContext();

                Debug.LogFormat("Recieved request from {0}.", context.Request.RemoteEndPoint.ToString());

                context.Response.StatusCode = 200;

                lock (waitingContexts)
                {
                    waitingContexts.AddLast(context);
                }
            }
        }
        catch(Exception e)
        {
            Debug.LogErrorFormat("Web server error at {0}.", e.Source);
            Debug.LogError(e.Message, this);
        }
    }
开发者ID:bonbombs,项目名称:CrimeTimeUNET,代码行数:33,代码来源:WebServer.cs

示例10: Main

    static void Main(string[] args)
    {
        StaticStore.ReadFromFile();
        StaticStore.RebuildHashTables();
        DynamicStore.ReadFromFile();

        var srv = new HttpListener();
        srv.Prefixes.Add("http://*:23455/");
        srv.Start();
        using (srv) {
          for (;;) {
        Handle(srv.GetContext());
          }
        }
    }
开发者ID:psde,项目名称:eve-igb-gts,代码行数:15,代码来源:srv.cs

示例11: Main

        public static void Main()
        {
            const Int32 c_port = 80;
            byte[] ip = { 192, 168, 1, 222 };
            byte[] subnet = { 255, 255, 255, 0 };
            byte[] gateway = { 192, 168, 1, 1 };
            byte[] mac = { 0x00, 0x88, 0x98, 0x90, 0xD4, 0xE0 };
            WIZnet_W5100.Enable(SPI.SPI_module.SPI1, (Cpu.Pin)FEZ_Pin.Digital.Di10,
                                                (Cpu.Pin)FEZ_Pin.Digital.Di7, true);
            NetworkInterface.EnableStaticIP(ip, subnet, gateway, mac);
            NetworkInterface.EnableStaticDns(new byte[] { 192, 168, 1, 1 });
            HttpListener listener = new HttpListener("http", c_port);
            String file = string.Empty;
            sdCard.MountFileSystem();
            Debug.EnableGCMessages(false);
            listener.Start();

            while (true)
            {
                HttpListenerResponse response = null;
                HttpListenerContext context = null;
                HttpListenerRequest request = null;
                try
                {

                    context = listener.GetContext();
                    request = context.Request;
                    response = context.Response;
                    response.StatusCode = (int)HttpStatusCode.OK;
                    Debug.Print(request.RawUrl);
                    Debug.Print(request.HttpMethod);
                    if (request.RawUrl.Length > 1)
                    {
                        if (request.HttpMethod == "GET")
                        {

                            if (request.RawUrl =="/testtemp.jpg")
                            {
                                if (pictureTaken)
                                {
                                    Debug.GC(true);
                                    sendFile(request, response);
                                }
                            }
                            else
                            {
                                Debug.GC(true);
                                sendFile(request, response);
                            }
                        }
                        else if (request.HttpMethod == "POST")
                        {

                            if (request.RawUrl.CompareTo("/getPicture") == 0)
                            {
                                if (pictureTaken)
                                {
                                    Thread thread = new Thread(takePicture);
                                    thread.Start();
                                    response.OutputStream.Write(Encoding.UTF8.GetBytes("Picture Taken"), 0, 13);
                                }
                                else
                                {
                                    Byte[] aString = Encoding.UTF8.GetBytes("Picture already being taken");
                                    response.OutputStream.Write(aString, 0, aString.Length);
                                }
                            }
                        }
                    }
                    else
                    {
                        string rootDirectory =
                        VolumeInfo.GetVolumes()[0].RootDirectory;
                        string[] files = Directory.GetFiles(rootDirectory);
                        for (int i = 0; i < files.Length; i++)
                        {
                            response.OutputStream.Write(Encoding.UTF8.GetBytes(files[i]), 0, files[i].Length);
                            response.OutputStream.WriteByte(10);
                        }
                        string[] folders = Directory.GetDirectories(rootDirectory);
                        for (int i = 0; i < folders.Length; i++)
                        {
                            Debug.Print(folders[i]);
                            string[] subFiles = Directory.GetFiles(folders[i]);
                            for (int j = 0; j < subFiles.Length; j++)
                            {
                                response.OutputStream.Write(Encoding.UTF8.GetBytes(subFiles[j]), 0, subFiles[j].Length);
                                response.OutputStream.WriteByte(10);
                            }
                        }

                    }
                    //We are ignoring the request, assuming GET
                    // Sends response:
                    response.Close();
                    context.Close();
                }
                catch
                {
                    if (context != null)
//.........这里部分代码省略.........
开发者ID:tony56a,项目名称:website-cam,代码行数:101,代码来源:Program.cs

示例12: Listen

 private void Listen()
 {
     _listener = new HttpListener();
     _listener.Prefixes.Add("http://localhost:" + _port.ToString() + "/");
     _listener.Start();
     while (true)
     {
         try
         {
             HttpListenerContext context = _listener.GetContext();
             Process(context);
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message);
             break;
         }
     }
 }
开发者ID:pmunmesh,项目名称:onlinedevices,代码行数:19,代码来源:HttpServer.cs

示例13: Main

    public static void Main(string[] args)
    {
        if (!HttpListener.IsSupported)
        {
            Console.WriteLine ("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
            return;
        }

        // Create a listener.
        HttpListener listener = new HttpListener();
        // Add the prefixes.
        listener.Prefixes.Add("http://+:42000/");

        int sessionCounter = 0;
        Dictionary<int,SCXML> sessions = new Dictionary<int,SCXML>();

        listener.Start();

        while(true){
            // Note: The GetContext method blocks while waiting for a request. 
            HttpListenerContext context = listener.GetContext();
            HttpListenerRequest request = context.Request;

            // Obtain a response object.
            HttpListenerResponse response = context.Response;
            System.IO.Stream output = response.OutputStream;

            String jsonBody  = new StreamReader(request.InputStream).ReadToEnd();

            //Dictionary<string, Dictionary<string,string>> values = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string,string>>>(jsonBody);
            JObject reqJson = JObject.Parse(jsonBody);

            JToken scxmlToken,eventToken,sessionJsonToken;
            int sessionToken;

            try{
                if(reqJson.TryGetValue("load",out scxmlToken)){
                    Console.WriteLine("Loading new statechart");

                    string scxmlStr = scxmlToken.ToString();
                    SCXML scxml = new SCXML(new System.Uri(scxmlStr));
                    IList<string> initialConfiguration = scxml.Start();

                    sessionToken = sessionCounter++;
                    sessions[sessionToken] = scxml;

                    // Construct a response.
                    string responseString = TestServer.getResponseJson(sessionToken,initialConfiguration);
                    System.Console.WriteLine(responseString);
                    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
                    // Get a response stream and write the response to it.
                    response.ContentLength64 = buffer.Length;
                    output.Write(buffer,0,buffer.Length);
                }else if(reqJson.TryGetValue("event",out eventToken) && reqJson.TryGetValue("sessionToken",out sessionJsonToken)){

                    string eventName = (string) reqJson["event"]["name"];
                    sessionToken = (int) reqJson["sessionToken"];
                    
                    IList<string> nextConfiguration = sessions[sessionToken].Gen(eventName,null);

                    string responseString = TestServer.getResponseJson(sessionToken,nextConfiguration);
                    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
                    response.ContentLength64 = buffer.Length;
                    output.Write(buffer,0,buffer.Length);
                }else{
                    string responseString = "Unrecognized request.";
                    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
                    response.ContentLength64 = buffer.Length;
                    output.Write(buffer,0,buffer.Length);
                }
            }catch(Exception e){
                string responseString = "An error occured: " + e.ToString();
                byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
                response.ContentLength64 = buffer.Length;
                output.Write(buffer,0,buffer.Length);
            }

            output.Close();
        }
        
    }
开发者ID:jbeard4,项目名称:SCION.NET,代码行数:81,代码来源:TestServer.cs

示例14: Listen

	private void Listen()
	{
		_listener = new HttpListener();
		_listener.Prefixes.Add("http://*:" + _port.ToString() + "/");
		_listener.Start();
		while (true)
		{
			try
			{
				HttpListenerContext context = _listener.GetContext();
				Process(context);
			}
			catch (Exception ex)
			{
				UnityEngine.Debug.Log(ex);
			}
		}
	}
开发者ID:raffomania,项目名称:multiphobia,代码行数:18,代码来源:SimpleHTTPServer.cs


注:本文中的HttpListener.GetContext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。