Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何像java servlet doPost一样在.NET中接收post数据(XML)_C#_Xml_Http_Post_Webserver - Fatal编程技术网

C# 如何像java servlet doPost一样在.NET中接收post数据(XML)

C# 如何像java servlet doPost一样在.NET中接收post数据(XML),c#,xml,http,post,webserver,C#,Xml,Http,Post,Webserver,我想接收HTTP POST数据(XML),其他Web服务器(Tomcat、shttpd)发布的XML数据 在Java上,我可以使用servlet doPost接收post数据,我是C#的新手,我不知道如何在C#上编写它。在.NET中,网络数据通信由 Windows通信基础 Windows通信基础(WCF)是微软构建面向服务的应用程序的统一编程模型。它使开发人员能够构建安全、可靠、可交易的解决方案,这些解决方案跨平台集成,并与现有投资相互操作 有关使用Web服务的信息,请参阅.NET中的 Win

我想接收HTTP POST数据(XML),其他Web服务器(Tomcat、shttpd)发布的XML数据


在Java上,我可以使用servlet doPost接收post数据,我是C#的新手,我不知道如何在C#上编写它。

.NET
中,网络数据通信由

Windows通信基础

Windows通信基础(WCF)是微软构建面向服务的应用程序的统一编程模型。它使开发人员能够构建安全、可靠、可交易的解决方案,这些解决方案跨平台集成,并与现有投资相互操作


有关使用Web服务的信息,请参阅
.NET
中的

Windows通信基础

Windows通信基础(WCF)是微软构建面向服务的应用程序的统一编程模型。它使开发人员能够构建安全、可靠、可交易的解决方案,这些解决方案跨平台集成,并与现有投资相互操作


有关使用Web服务的信息,请参阅。

我编写了一个简单的receive post data use System.Net.HttpListener类,但它只接收一次并退出编程

我怎样才能得到更多

思考

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;

/*
 * By: Bian Jiang
 * Blog: http://wifihack.net
 * 
 */

public class SimpleLinsstener
{

    public static void ShowRequestData(HttpListenerRequest request)
    {
        if (!request.HasEntityBody)
        {
            Console.WriteLine("No client data was sent with the request.");
            return;
        }
        System.IO.Stream body = request.InputStream;
        System.Text.Encoding encoding = request.ContentEncoding;
        System.IO.StreamReader reader = new System.IO.StreamReader(body, encoding);
        if (request.ContentType != null)
        {
            Console.WriteLine("Client data content type {0}", request.ContentType);
        }
        Console.WriteLine("Client data content length {0}", request.ContentLength64);

        Console.WriteLine("Start of client data:");
        // Convert the data to a string and display it on the console.
        string s = reader.ReadToEnd();
        Console.WriteLine(s);
        Console.WriteLine("End of client data:");
        body.Close();
        reader.Close();
        // If you are finished with the request, it should be closed also.
    }


    // This example requires the System and System.Net namespaces.
    public static void SimpleListenerExample(string prefixes)
    {
        if (!HttpListener.IsSupported)
        {
            Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
            return;
        }
        // URI prefixes are required,
        // for example "http://contoso.com:8080/index/".
        if (prefixes == null)
            throw new ArgumentException("prefixes");

        // Create a listener.
        HttpListener listener = new HttpListener();
        // Add the prefixes.
        //foreach (string s in prefixes)
        //{
        listener.Prefixes.Add(prefixes);
        //}
        listener.Start();
        Console.WriteLine("Listening...");
        // Note: The GetContext method blocks while waiting for a request. 
        HttpListenerContext context = listener.GetContext();

        HttpListenerRequest request = context.Request;
        ShowRequestData(request);


        // Obtain a response object.
        HttpListenerResponse response = context.Response;
        // Construct a response.
        string responseString = "ok";
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
        // Get a response stream and write the response to it.
        response.ContentLength64 = buffer.Length;
        System.IO.Stream output = response.OutputStream;
        output.Write(buffer, 0, buffer.Length);
        // You must close the output stream.
        output.Close();

        listener.Stop();
    }


    static void Main()
    {
        // Write to console
        Console.WriteLine("Welcome to the C# Station Tutorial!");
        string[] strUserNames = new String[1] {"http://*:8080/Receive/" };
        SimpleListenerExample("http://*:8080/Receive/");
    }

}

我编写了一个简单的receive post data use System.Net.HttpListener类,但它只接收一次并退出编程

我怎样才能得到更多

思考

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;

/*
 * By: Bian Jiang
 * Blog: http://wifihack.net
 * 
 */

public class SimpleLinsstener
{

    public static void ShowRequestData(HttpListenerRequest request)
    {
        if (!request.HasEntityBody)
        {
            Console.WriteLine("No client data was sent with the request.");
            return;
        }
        System.IO.Stream body = request.InputStream;
        System.Text.Encoding encoding = request.ContentEncoding;
        System.IO.StreamReader reader = new System.IO.StreamReader(body, encoding);
        if (request.ContentType != null)
        {
            Console.WriteLine("Client data content type {0}", request.ContentType);
        }
        Console.WriteLine("Client data content length {0}", request.ContentLength64);

        Console.WriteLine("Start of client data:");
        // Convert the data to a string and display it on the console.
        string s = reader.ReadToEnd();
        Console.WriteLine(s);
        Console.WriteLine("End of client data:");
        body.Close();
        reader.Close();
        // If you are finished with the request, it should be closed also.
    }


    // This example requires the System and System.Net namespaces.
    public static void SimpleListenerExample(string prefixes)
    {
        if (!HttpListener.IsSupported)
        {
            Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
            return;
        }
        // URI prefixes are required,
        // for example "http://contoso.com:8080/index/".
        if (prefixes == null)
            throw new ArgumentException("prefixes");

        // Create a listener.
        HttpListener listener = new HttpListener();
        // Add the prefixes.
        //foreach (string s in prefixes)
        //{
        listener.Prefixes.Add(prefixes);
        //}
        listener.Start();
        Console.WriteLine("Listening...");
        // Note: The GetContext method blocks while waiting for a request. 
        HttpListenerContext context = listener.GetContext();

        HttpListenerRequest request = context.Request;
        ShowRequestData(request);


        // Obtain a response object.
        HttpListenerResponse response = context.Response;
        // Construct a response.
        string responseString = "ok";
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
        // Get a response stream and write the response to it.
        response.ContentLength64 = buffer.Length;
        System.IO.Stream output = response.OutputStream;
        output.Write(buffer, 0, buffer.Length);
        // You must close the output stream.
        output.Close();

        listener.Stop();
    }


    static void Main()
    {
        // Write to console
        Console.WriteLine("Welcome to the C# Station Tutorial!");
        string[] strUserNames = new String[1] {"http://*:8080/Receive/" };
        SimpleListenerExample("http://*:8080/Receive/");
    }

}
请参阅“”。

请参阅“”