Asp.net XMLHTTP封装类(GET,Post发送和接收数据)
程序员文章站
2022-04-17 13:29:05
复制代码 代码如下:/**************************************************************** * 函数名称:sen...
复制代码 代码如下:
/****************************************************************
* 函数名称: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
}
}