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
  • 相关阅读:
    06 is和==的区别 encode()编码 decode()解码
    05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用
    03 编码 int ,bool,str的常用操作 主要讲str
    01 基本数据类型 变量 if语句
    04 列表的增删改查 常用方法 元祖 range
    02 while循环 格式化输出 运算符
    多校2 Harmonious Army hdu6598 网络流
    P3159 [CQOI2012]交换棋子 网络流
    P2172 [国家集训队]部落战争 最大流
    P2402 奶牛隐藏 网络流
  • 原文地址:https://www.cnblogs.com/nasa/p/1264757.html
Copyright © 2011-2022 走看看