winfrom创建post接口,返回数据

winfrom如何创建一个post接口,返回数据,并提供给用户使用,各位大神有没有示例

图片说明网上一大堆 这是我自己写的 和java互通的

                            //为指定的 URI 方案初始化新的 WebRequest 实例,强制转换为 HttpWebRequest
            httpWebRequest = (HttpWebRequest)WebRequest.Create(GXT.BaseLibrary.Application.GetHttpEscape(url).Trim());
            //获取或设置 Content-type HTTP 标头的值。
            httpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=utf-8";

            //获取或设置 Content-lengthHTTP 标头。
            httpWebRequest.ContentLength = requestBytes.Length;
            //获取或设置请求的方法。
            httpWebRequest.Method = "POST";
            httpWebRequest.ContentLength = requestBytes.Length;

            //获取用于请求的服务点是否使用 100-Continue 行为。
            /*
             * 1、http 100-continue用于客户端在发送POST数据给服务器前,征询服务器情况,
             *    看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。
             *    在现实应用中,通过在POST大数据时,才会使用100-continue协议。
             * 2、客户端策略。
             *  1)如果客户端有POST数据要上传,可以考虑使用100-continue协议。加入头{"Expect":"100-continue"}
             *  2)如果没有POST数据,不能使用100-continue协议,因为这会让服务端造成误解。
             *  3)并不是所有的Server都会正确实现100-continue协议,如果Client发送Expect:100-continue消息后,
             *     在timeout时间内无响应,Client需要立马上传POST数据。
             *  4)有些Server会错误实现100-continue协议,在不需要此协议时返回100,此时客户端应该忽略。
             * 3、服务端策略。
             *  1)正确情况下,收到请求后,返回100或错误码。
             *  2)如果在发送100-continue前收到了POST数据(客户端提前发送POST数据),则不发送100响应码(略去)。
             */
            httpWebRequest.ServicePoint.Expect100Continue = false;

            //设置代理
            httpWebRequest.Proxy = Proxy.WebProxy;

            //获取或设置 GetResponse 和 GetRequestStream 方法的超时值(以毫秒为单位)。
            //默认为100秒,即值为100000
            httpWebRequest.Timeout = timeout;

            //写入数据到HTTP服务器,完成后关闭流
            using (Stream writer = httpWebRequest.GetRequestStream())
            {
                //写入参数
                writer.Write(requestBytes, 0, requestBytes.Length);
            }

            //接收HTTP服务器做出的响应
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

            //如果服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页
            if (httpWebResponse.StatusCode == HttpStatusCode.OK)
            {
                //获取封装响应体的流
                Stream receiveStream = httpWebResponse.GetResponseStream();

                //以特定的编码对响应体的流进行解码
                StreamReader readStream = new StreamReader(receiveStream);
                //声明一个Char数组
                Char[] readBuffer = new Char[256];
                //从 0 开始,从当前流中将最多的 256 个字符读入 readBuffer。 
                int count = readStream.Read(readBuffer, 0, 256);

                //声明一个字符序列sb
                StringBuilder sb = new StringBuilder();

                //count 输入流中表示为 Int32 对象的下一个字符。如果不再有可用的字符,则为 -1。 
                while (count > 0)
                {
                    //向序列化里面加入新的字符串
                    sb.Append(new String(readBuffer, 0, count));
                    //继续读
                    count = readStream.Read(readBuffer, 0, 256);
                }

                //设置返回的JSON数据
                str = sb.ToString();

                //关闭响应流
                httpWebResponse.Close();
                //关闭读取流
                readStream.Close();

                //设置执行结果为true
                isSuccess = true;
            }