Asp.net XMLHTTP 基类 (GET,Post发送和接收数据)

来源:互联网 发布:mac的final cut pro 编辑:程序博客网 时间:2024/04/29 10:31
  1.   
  2. /****************************************************************
  3.  * 函数名称:SendCommand(SendMethod method, ST_Param p)
  4.  * 功能说明:向远程发送URL和参数,接受返回信息(无乱码); 
  5.  * 参    数:method:xml发送方法,POST/Get 两种
  6.       P:参数结构体
  7.               public string Url; //远程URL
  8.               public string Parameters; //参数
  9.               public string Uid; //帐号
  10.               public string Pwd; //号令
  11.  * 调用示列:
  12.  *           using ebcnc;    //引用空间名 
  13.  *           XMLHTTP x = new XMLHTTP(); //创建设xmlhttp对像
  14.  *           XMLHTTP.ST_Param st = new XMLHTTP.ST_Param(); //创建参数数组
  15.  *           st.Parameters = "";  //url详细参数
  16.  *           st.Url = "http://www.baidu.com"; //url
  17.  *           st.Uid = ""  ; //帐号
  18.  *           st.Pwd = ""; //口令
  19.  *           string rn=””; //返回字符串
  20.  *           rn=x.SendCommand(XMLHTTP.SendMethod.POST, st); //获取返回信息
  21.  *           x.Dispose();
  22. ***********************************************************************/
  23. using System;
  24. using MSXML2;
  25. namespace ebcnc
  26. {
  27.     /// <summary>
  28.     /// XMLHTTP基类
  29.     /// </summary>
  30.     public class XMLHTTP : IDisposable
  31.     {
  32.         #region 变量及参数
  33.         private XMLHTTPClass xml;
  34.         private bool _alreadyDispose = false;
  35.         public ST_Param Parameters;
  36.         public enum SendMethod : int
  37.         {
  38.             POST, GET
  39.         }
  40.         #endregion
  41.         #region 参数结构体
  42.         public struct ST_Param
  43.         {
  44.             public string Url;
  45.             public string Parameters;
  46.             public string Uid;
  47.             public string Pwd;
  48.         }
  49.         #endregion
  50.         #region 发送数据
  51.         /// <summary>
  52.         /// 发送数据
  53.         /// </summary>
  54.         /// <param name="method">发送方式</param>
  55.         /// <param name="p">数据</param>
  56.         /// <returns>STRING</returns>
  57.         public virtual string SendCommand(SendMethod method, ST_Param p)
  58.         {
  59.             if (p.Url == null || p.Url == ""return null;
  60.             if (method == SendMethod.POST)
  61.             {
  62.                 try
  63.                 {
  64.                     xml.open("POST", p.Url, false, p.Uid, p.Pwd);
  65.                     xml.setRequestHeader("Content-type""application/x-www-form-urlencoded");
  66.                     xml.send(CommonFunction.UrlEncoding(p.Parameters));
  67.                     if (xml.status == 200)
  68.                     {
  69.                         return System.Text.Encoding.Default.GetString((byte[])xml.responseBody);
  70.                     }
  71.                     else
  72.                     {
  73.                         return xml.status.ToString();
  74.                     }
  75.                 }
  76.                 catch (Exception E)
  77.                 {
  78.                     return E.Message.ToString();
  79.                 }
  80.             }
  81.             else if (method == SendMethod.GET)
  82.             {
  83.                 xml.open("GET", p.Url + "?" + CommonFunction.UrlEncoding(p.Parameters), false, p.Uid, p.Pwd);
  84.                 xml.send(null);
  85.                 return System.Text.Encoding.Default.GetString((byte[])xml.responseBody);
  86.             }
  87.             return null;
  88.         }
  89.         #endregion
  90.         #region 构造与释构
  91.         public XMLHTTP()
  92.         {
  93.             xml = new XMLHTTPClass();
  94.         }
  95.         ~XMLHTTP()
  96.         {
  97.             Dispose();
  98.         }
  99.         protected virtual void Dispose(bool isDisposing)
  100.         {
  101.             if (_alreadyDispose) return;
  102.             if (isDisposing)
  103.             {
  104.                 if (xml != null)
  105.                 {
  106.                     xml = null;
  107.                 }
  108.             }
  109.             _alreadyDispose = true;
  110.         }
  111.         #endregion
  112.         #region IDisposable 成员
  113.         public void Dispose()
  114.         {
  115.             Dispose(true);
  116.             GC.SuppressFinalize(this);
  117.         }
  118.         #endregion
  119.     }
  120. }
原创粉丝点击