- /****************************************************************
- * 函数名称:SendCommand(SendMethod method, ST_Param p)
- * 功能说明:向远程发送URL和参数,接受返回信息(无乱码);
- * 参 数:method:xml发送方法,POST/Get 两种
- P:参数结构体
- public string Url; //远程URL
- public string Parameters; //参数
- public string Uid; //帐号
- public string Pwd; //号令
- * 调用示列:
- * using ebcnc; //引用空间名
- * XMLHTTP x = new XMLHTTP(); //创建设xmlhttp对像
- * XMLHTTP.ST_Param st = new XMLHTTP.ST_Param(); //创建参数数组
- * st.Parameters = ""; //url详细参数
- * st.Url = "http://www.baidu.com"; //url
- * st.Uid = "" ; //帐号
- * st.Pwd = ""; //口令
- * string rn=””; //返回字符串
- * rn=x.SendCommand(XMLHTTP.SendMethod.POST, st); //获取返回信息
- * x.Dispose();
- ***********************************************************************/
- using System;
- using MSXML2;
- namespace ebcnc
- {
- /// <summary>
- /// XMLHTTP基类
- /// </summary>
- public class XMLHTTP : IDisposable
- {
- #region 变量及参数
- private XMLHTTPClass xml;
- private bool _alreadyDispose = false;
- public ST_Param Parameters;
- public enum SendMethod : int
- {
- POST, GET
- }
- #endregion
- #region 参数结构体
- public struct ST_Param
- {
- public string Url;
- public string Parameters;
- public string Uid;
- public string Pwd;
- }
- #endregion
- #region 发送数据
- /// <summary>
- /// 发送数据
- /// </summary>
- /// <param name="method">发送方式</param>
- /// <param name="p">数据</param>
- /// <returns>STRING</returns>
- public virtual string SendCommand(SendMethod method, ST_Param p)
- {
- if (p.Url == null || p.Url == "") return null;
- if (method == SendMethod.POST)
- {
- try
- {
- xml.open("POST", p.Url, false, p.Uid, p.Pwd);
- xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- xml.send(CommonFunction.UrlEncoding(p.Parameters));
- if (xml.status == 200)
- {
- return System.Text.Encoding.Default.GetString((byte[])xml.responseBody);
- }
- else
- {
- return xml.status.ToString();
- }
- }
- catch (Exception E)
- {
- return E.Message.ToString();
- }
- }
- else if (method == SendMethod.GET)
- {
- xml.open("GET", p.Url + "?" + CommonFunction.UrlEncoding(p.Parameters), false, p.Uid, p.Pwd);
- xml.send(null);
- return System.Text.Encoding.Default.GetString((byte[])xml.responseBody);
- }
- return null;
- }
- #endregion
- #region 构造与释构
- public XMLHTTP()
- {
- xml = new XMLHTTPClass();
- }
- ~XMLHTTP()
- {
- Dispose();
- }
- protected virtual void Dispose(bool isDisposing)
- {
- if (_alreadyDispose) return;
- if (isDisposing)
- {
- if (xml != null)
- {
- xml = null;
- }
- }
- _alreadyDispose = true;
- }
- #endregion
- #region IDisposable 成员
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
- #endregion
- }
- }