zoukankan      html  css  js  c++  java
  • silverlight向服务器post数据类

    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.IO;


    public class HttpClient
    {
        
    private WebRequest webRequest = null;
        
    public delegate void ResponseEventHandler(String responseResult);
        
    public event ResponseEventHandler onResponseEventHandler;
        
    public delegate void RequestEventHandler();
        
    public event RequestEventHandler onRequestEventHandler;
        
    public string PostData { getset; }

        
    public HttpClient(Uri clientUri)
        {
            Uri endpoint 
    = clientUri;
            webRequest 
    = WebRequest.Create(endpoint);
            webRequest.ContentType 
    = "application/x-www-form-urlencoded";
            webRequest.Method 
    = "POST";
        }

        
    public void Post()
        {
            webRequest.BeginGetRequestStream(
    new AsyncCallback(RequestReady), webRequest);
        }
        
    private void RequestReady(IAsyncResult asyncResult)
        {
            
    if (this.onRequestEventHandler != null)
            {
                
    this.onRequestEventHandler();
            }
            WebRequest request 
    = asyncResult.AsyncState as WebRequest;
            Stream requestStream 
    = request.EndGetRequestStream(asyncResult);

            
    using (StreamWriter writer = new StreamWriter(requestStream))
            {
                writer.Write(
    this.PostData);
                writer.Flush();
                writer.Close();
            }
            webRequest.BeginGetResponse(
    new AsyncCallback(ResponseReady), webRequest);
        }
        
    private void ResponseReady(IAsyncResult asyncResult)
        {
            
    if (this.onResponseEventHandler != null)
            {
                WebRequest request 
    = asyncResult.AsyncState as WebRequest;
                WebResponse response 
    = request.EndGetResponse(asyncResult);

                
    using (Stream responseStream = response.GetResponseStream())
                {
                    String responseResult 
    = String.Empty;
                    
    try
                    {
                        StreamReader reader 
    = new StreamReader(responseStream);
                        responseResult 
    = reader.ReadToEnd();
                    }
                    
    catch (WebException er)
                    {
                        responseResult 
    = er.Message;
                    }
                    
    catch (Exception er)
                    {
                        responseResult 
    = er.Message;
                    }
                    
    this.onResponseEventHandler(responseResult);
                }
            }
        }
    }

    作者:nasa
    出处:nasa.cnblogs.com
    联系:nasa_wz@hotmail.com
    QQ:12446006
  • 相关阅读:
    git
    RT-Thread 4.0 + STM32F407 学习笔记1
    C#串口通信及数据表格存储
    NRF52832初步使用
    ubuntu终端下快捷键之--字体放大缩小
    微信公众号开发被动回复用户消息,回复内容Content使用了" "换行符还是没有换行
    python2018年秋季调研
    python图像处理模块Pillow--Image模块
    linux查看文件命令tail的使用
    使用xadmin更新数据时,报错expected string or bytes-like object
  • 原文地址:https://www.cnblogs.com/nasa/p/1264757.html
Copyright © 2011-2022 走看看